本体4
223~ Email the message.
メールの送信方法を確定するのに次の3つの設定を使います
3つのセクションは、"Email Settings"と呼びます。
"Mail Server"はメールを送るときに使う設定です。
"Reply-to Address"はメールを送信したする人のアドレスを記入します。
"Render Report Recipient"はメールを受信する人のアドレス記入します。
if ( !settings.haveSetting("Email Settings", "Mail Server") ||
!settings.haveSetting("Email Settings", "Reply-to Address") ||
!settings.haveSetting("Email Settings", "Render Report Recipient"))
if ( !settings.haveSettingで、"Email Settings"の中にある "Mail Server""Reply-to Address""Render Report Recipient"のどれかひとつでもデータが存在しなければ、{}内を実行しなさいと命令しています。以下の{では、警告メッセージを内容を記述しています。コメントアウトの次にある }else{ はデータが存在する場合の動作を示しています。tryはちょっと複雑です。この構文は、try~catch~と書きます。機能は、tryに続くブロック部分で囲んだプログラム中で何らかのエラーが発生したときにcatch節を使ってエラーの内容を受け取るものです。ここではかなり後ろの方でcatchが出てくるので頭の中に入れておいてください。
try{エラーをキャッチしたい処理内容}catch(e){エラーをキャッチしたら行う処理内容}
{
alert("Can't send an email, I don't have all the settings I need. Aborting.\r\nメールの送信が出来ません\r\nこのスクリプトが要求する設定が完全になされていません。\r\n中止します");
//警告メッセージを表示します。
}else{
try {
tryは何らかのエラーがあった時に、"Email Settings"の"Mail Server""Reply-to Address""Render Report Recipient"の中からgetSetting()メソッドにより、データを抜き出し、変数serverSetting、fromSetting、toSettingに代入します。
さらに、変数authUser、authPassを定義しています。authUserはオーソライズユーザーの略で認証されたユーザーの意味です。authPassも認証されたユーザーのパスワードのことです。
var serverSetting = settings.getSetting("Email Settings", "Mail Server");
var fromSetting = settings.getSetting("Email Settings", "Reply-to Address");
var toSetting = settings.getSetting("Email Settings", "Render Report Recipient");
var authUser;
var authPass;
if (app.settings.haveSetting("Email Settings", "Auth User"))
"Email Settings",から "Auth User"がtrueなのかfalseなのかを判断し、trueであれば{}内を実行します
trueは変数"Auth User"に何らかのデータが入っているかを確かめるだけで、内容が何かまでは関係ありません。
{
authUser = app.settings.getSetting("Email Settings", "Auth User");
}
"Auth User"にデータが格納されていたので、そのデータ内容を変数Auth Userに代入しなさいと命令しています。
if (app.settings.haveSetting("Email Settings", "Auth Pass")) {
authPass = app.settings.getSetting("Email Settings", "Auth Pass");
}
ここも上段と同様で、"Auth Pass"にデータが格納されていれば、そのデータ内容を変数Auth Passに大入しなさいと命じています。
ack, can't delete settings...
ack 設定を削除することは出来ない
if (authUser == "") {
authUser = null;
authPass = null;
}
もし、変数authUserに未記入の状態であれば、authUserとauthPassにnullを代入して
強制的にnull値にしなさいと命じています。/Users/yamazaki/Desktop/名称未設定 6.html
var myMail = new EmailSocket(serverSetting);
変数myMailでは、変数serverSettingで格納されたMail Serverの情報をEmailSocketとして新規に作成し代入します。
ここで、socket(ソケットと読む)とは、ビル名と階数を組み合わせた住所のことだと思ってください。
まず、コンピュータが持つネットワーク内での住所にあたるIPアドレスがあり、IPアドレスのサブ(補助)アドレスであるポート番号を組み合わせたネットワークアドレスのことをsocketといいます。通常、TCP/IP通信においては、1つのIPアドレスは複数(通常は65536個)の「ポート」から構成され、他のIPアドレス上のポートと結合して、複数のアドレスと同時に通信できるようになっています。接続を行なう場合は必ずIPアドレスとポート番号の組を指定し、この組のことをソケットといいます。1つのビル(IPアドレス)に複数の階(ポート)があり、どのビルのどの階かを指定して通信を行なうのがソケットのイメージです。
if (! myMail.send (fromSetting, toSetting, "AE Render Completed", myMessage, authUser, authPass) ) {
alert("Sending mail failed\r\nメール送信に失敗しました");
}
この構文は、これまで長々と書いてきたエラーの原因が、次の()内に含まれる(fromSetting, toSetting, "AE Render Completed", myMessage, authUser, authPass)場合、警告メッセージを出しなさいとしています。(script08)
} catch (e) {
alert("Unable to send email.\r\nメールを送信できません\r\n" + e.toString());
}
}
}
}
長らくtryの条件を書いてきたので、catch(e)が忘れられてしまっていると思いますので再度説明します。
try{エラーをキャッチしたい処理内容}catch(e){エラーをキャッチしたら行う処理内容}で、これまでの構文にはエラーをキャッチしたい処理内容を書いてきました。
try分の意味は、fromSettingで何らかのエラーがあることを認識した場合ということです。
エラーを認識してキャッチしたら警告を発しなさいとしています。e.toString()は引数で示した基数を元にした進数で変換します。
例えば、catch (e)で代入された、eの数値をtoString()関数で数値に変換してエラー番号として表示します。
補足ですが、toString()で引数が無い場合は10進数を表示します。toString(16)なら16進数になります。
Unable to send email.の後に改行してエラーメッセージが入ります。(script09)