シェルスクリプトマガジン

第7回 DMを自動送信する(STARTTLS編)

 14~32行目がメインの処理です。14行目のexpectに「-c コマンド」オプションを指定することで、引数内のコマンドがexpectによる自動実行の対象になります。複数のコマンドを対象にする場合、「”」や「’」で囲みます。15行目は、応答待ちのタイムアウト時間です。このシェルスクリプトでは「5」秒を指定しています。

 16行目の「spawn」の後ろが、対話型で処理を実行するコマンドになります。opensslコマンドに「s_client」のサブコマンドを指定することでSSL/TLSクライアントとして起動します。「-connect ホスト名」オプションにアクセス先のメールサーバーのホスト名を指定します。「-starttls smtp」オプションがSMTP STARTTLSを使う指定、「-crlf」オプションが改行コードに「CR」「LF」を使う指定です。「CR」「LF」は、Windowsの改行コードですが、LinuxやUNIX系OSの改行コードの「LF」のままではうまく動作しません。