3.4.3 Mail
説明
Mail- IMAPまたはPOP3サーバーから受信メールを取得します。SMTPサーバーからメールを送信するには Sendmail コマンドを使用します。
このコマンドは3つのアクションをサポートしています:
Get - サーバーからメールをダウンロードする。メッセージはオプションで属性によってフィルタリングすることができます。
Set - メッセージの 見た フラグを設定します。
Delete - メッセージを削除します。
Gmailメッセージの削除は、「転送とPOP/IMAP」タブの設定ページにあるオプションによって左右されますのでご注意ください。メッセージはアーカイブ、ゴミ箱への移動、または即時削除される可能性があります。期待どおりの結果を得るために、オプションを必ずご確認ください。
すべての行動がサポートする認証パラメータ以下の通りです:
server=<サーバー・アドレス>
サーバー名またはIPアドレス。imap.gmail.com.オプションでポート番号が含まれる場合もあります。
protocol=<IMAP|POP3>
サーバタイプ(プロトコル)。"IMAP "または "POP3 "のいずれか。パラメータが省略された場合、コマンドのデフォルトは "IMAP" となります。もしセキュリティパラメータが"グーグル"または「マイクロソフトこのオプションに関係なく、プロトコルはIMAPにフォールバックします。
user=<ユーザー名>
メールサーバーのユーザー名。
security=<password|google|microsoft>
-セキュリティタイプ(6.2.2以降):
"password" - プレーンパスワード認証。パスワードはpasswordパラメータで指定できます。
"google" - Gmail IMAPサーバーへのOAuth2認証
"microsoft" - MS Outlook IMAPサーバーへのOAuth2認証。
OAuth2スキームのいずれかを有効にするには、認証トークンを Tools→OAuth Token Manager ウィンドウに表示されます。トークンの有効期限は長いですが、ユーザー側で無効にしたり(パスワードの変更、Google Dev ConsoleやMS Azureアカウントによる無効化など)、長期間(通常6ヶ月)使用しなかったりすると無効になります。ダウンロードされたトークンは暗号化され、Robotの設定ファイルに保存されます。
password=<パスワード>
-パスワード。セキュリティが「パスワード」に設定されている場合にのみ使用されます。
これらのパラメータは、最初の Mail コマンドでのみ使用する必要があります。これらのパラメータは内部的に保存され、同じスクリプト実行セッション内で呼び出された後続のコマンドで再利用されます。
認証パラメータは特殊変数を通して指定することもできます。この方法により、コマンドラインやworkitem あるいは、パから認証データを挿入したり、パスワードなどの機密情報を Safe Boxに保存したりすることが可能になります。
変数名 | 説明 |
|---|---|
_EMAIL_SERVER | サーバー名またはIPアドレス |
_EMAIL_PROTOCOL | サーバーの種類。"POP3 "または "IMAP "のいずれか。 |
_EMAIL_USER | ユーザー名 |
_EMAIL_SECURITY | セキュリティは「password」、「google」、「microsoft」のいずれかです |
_EMAIL_PASSWORD | パスワード |
メールの取得
Mail get "はローカルにメッセージをキャッシュせず、常に新しいデータをロードするので、メッセージをフィルタリングするか、検索するメッセージの最大量を設定することをお勧めします。例えば
Mail get max=10 read=false subject="Request"
は、件名に "Request "という単語を含む未読メールを、直近の10件から検索します。
検索されたメッセージは日付順に並べ替えられます(新しいものから)。添付ファイルは自動的にハードディスク上の一時的な場所にダウンロードされ、セッションの終了時に削除されます。メッセージの属性は変数の形でスクリプトに公開されます:
メールを日付順に返す場合は、まず標準のメール クライアント内でこの設定を行って、メール サーバー側に保存する必要があります。
変数名 | 説明 |
|---|---|
EMAIL_TOTAL_COUNT=<数> | 最後に接続したメールフォルダ内のメッセージ総数 |
EMAIL_NEW_COUNT=<数> | 最後に接続したメールフォルダ内の新着(未読)メッセージ数 |
EMAIL_COUNT=<数> | 指定された条件にマッチした検索メッセージの数 |
EMAIL_FROM_<n>=<アドレス> | n番目のメッセージの送信者アドレス |
EMAIL_TO_<n>=<アドレス(es)> | 受信者、またはセミコロンで区切られたn番目のメッセージの受信者のリスト。 |
_EMAIL_SUBJECT_<n>=<文章> | n番目のメッセージの件名 |
_EMAIL_BODY_<n>=<文章> | n番目のメッセージの本文 |
EMAIL_READ_<n>=<true|false> | n番目のメッセージのSEENフラグインジケータ(false=未読、true=既読)。 |
EMAIL_FOLDER_<n>=<名前> | n 番目のメッセージが属するフォルダ名。 |
EMAIL_UID_<n>=<id> | n番目のメッセージの識別子。これは "set "操作と "delete "操作に使われる。 |
EMAIL_ATT_COUNT_<n>=<数> | n番目のメッセージの添付ファイルの数 |
EMAIL_ATT_NAME_<n>_<k>=<名前> | n 番目のメッセージの k 番目の添付ファイルのファイル名。 |
EMAIL_ATT_FILE_<n>_<k>=<file_path> | ローカルハードディスク上の、n番目のメッセージのk番目の添付ファイルへのファイルパス。 |
SYNOPSIS
Mail get [server=<server_address>] [protocol=<IMAP|POP3>] [user=<user_name>] [password=<password>] [folder=<folder_name>] [from=<email_address>] [subject=<text>] [body=<text>] [attachment=<text>] [read=<true|false>] [max=<number>]
赤色は必須パラメータです。
オプション
folder=<フォルダ名>
接続先のIMAPサーバ上のフォルダ。パラメータが省略された場合、またはサーバのタイプがPOP3の場合、デフォルトは "INBOX "です。
from=<メールアドレス>
送信者アドレスまたはその一部。
subject=<テキスト>
メッセージの件名、またはそれに含まれるフレーズ。
body=<テキスト>
メッセージ本文、または本文に含まれるフレーズ。
attachment=<テキスト>
添付ファイル名、または添付ファイルに含まれる文字列。例えば、テキストファイルが添付されたメッセージを取得するには ".txt" を使用します。
read=<true|false>
既読(true)か未読(false)のメッセージだけを取り出します。
max=<数値>
処理する最新のメッセージの最大数。このパラメータを使用すると、大量のメッセー ジを含むアカウントでの長い遅延を避けることができます。デフォルト値は100です。
uid=<メッセージID>
-取得するメッセージの識別子。これは、以前に "Mail get "を呼び出したときに設定された _EMAIL_UID変数から取得することができます。このパラメータが指定されると、他の全てのフィルタリングパラメータは無視され、 コマンドはメッセージのみを返します。
シノプシス
Mail set [server=<erver_address>] [protocol=<IMAP|POP3>] [user=<user_name>] [password=<password>] [folder=<folder_name>] [uid=<message_id>] [read=<true|false>] 。
赤色は必須パラメータです
オプション
folder=<フォルダ名>
-接続先のIMAPサーバ上のフォルダ。パラメータが省略された場合、またはサーバのタイプがPOP3の場合、デフォルトは "INBOX "です。
uid=<メッセージID>
-更新されるメッセージの識別子。これは "Mail get" で設定された _EMAIL_UID 変数から取得できます。このパラメータが省略された場合、コマンドは最近実行された "Mail get" アクションによって取得されたすべてのメッセージを更新します。
read=<true|false>
-SEEN フラグのターゲット状態。メッセージの状態を未読にするには "false "を、既読にするには "true "を使う。
SYNOPSIS
Mail delete [server=<server_address>] [protocol=<IMAP|POP3>] [user=<user_name>] [password=<password>] [folder=<folder_name>] [uid=<message_id>] 。
赤色は必須パラメータです
オプション
folder=<フォルダ名>
-接続先のIMAPサーバ上のフォルダ。パラメータが省略された場合、またはサーバのタイプがPOP3の場合、デフォルトは "INBOX "です。
uid=<メッセージID>
-削除するメッセージの識別子。これは "Mail get" で設定された _EMAIL_UID 変数から取得できます。このパラメータが省略された場合、コマンドは直近に実行された "Mail get "アクションによって取得されたすべてのメッセージを削除します。
戻り値
このコマンドは0(成功)のみを返します。メールサーバーへの接続に失敗した場合はエラーが発生し、スクリプトが終了します。
使用例
Mail get server=imap.gmail.com user=john.doe@gmail.com password=welcome max=10 read=false
Mail set read=true
指定したGoogleアカウントから最近10通の未読メールを検索し、"既読 "としてマークします
Var _EMAIL_SERVER=imap.gmail.com
Var _EMAIL_USER=john.doe@gmail.com
Var _EMAIL_PASSWORD=welcome
Mail get max=20 read=false attachment=".xls"
for (i=1; {i}<={_EMAIL_COUNT}; i={i}+1) {
Excel open file={_EMAIL_ATT_FILE_{i}_1}
Excel select ref=A1
Log "Value at A1 of the file {_EMAIL_ATT_NAME_{i}_1} is: {_EXCEL_CELL_VALUE}"
Mail set uid={_EMAIL_UID_{i}} read=true
}
最初の添付ファイルとしてMicrosoft Excel 97ファイル(.xls)を含む未読メッセージを最大20件ダウンロードします。ファイルを開き、最初のセルの値を記録します。その後、メッセージを「既読」にします。
この例では、メールによるプロセスの自動化方法を示します。ユーザーはリクエスト(フォーム)を指定されたアドレスにメールで送信し、実行中のロボットインスタンスがそれを受信し、処理します。