MT4メール通知のSMTP設定でつまずく時に見ること

MT4のメール通知でつまずく時は、アラート条件よりもSMTP設定で止まっていることがあります。SMTPサーバー、ポート、ログイン、パスワード、From、Toのどれかがずれていると、Testでは失敗したり、EAやインジケーターからのメールが送れなかったりします。

この記事では、MetaTrader 4公式ヘルプとMQL4公式ドキュメントをもとに、MT4メール通知のSMTP設定で見る項目を分けます。メールサービス側の仕様は変わることがあるため、実際のSMTPサーバー名、ポート番号、認証方法は、利用しているメールサービスの公式情報で最新条件を確認してください。

先に短く言うと
  • MT4のメール通知は、ToolsのOptionsにあるEmailタブで設定します。
  • MetaTrader 4公式ヘルプでは、Enableを有効にし、SMTP Server、SMTP Login、SMTP Password、From、Toを入力すると説明されています。
  • SMTP Serverは、サーバーのアドレスとポート番号を smtp.example.com:25 のような形式で入れる項目です。
  • MQL4の SendMail() は、Emailタブに指定された宛先へメールを送る関数です。Strategy Testerでは動作しないと説明されています。

SMTP設定はメールを送るための出口を見る場所

SMTPは、MT4からメールを送るために使う送信側の設定です。MT4のアラートやEAが「メールを送る」処理をしても、Emailタブの設定が合っていなければ、実際のメール送信で止まります。

メール通知でつまずく時は、まず価格アラートやEAの条件ではなく、MT4がメール送信に使う出口が通っているかを見ます。ここで見るのが、SMTP Server、SMTP Login、SMTP Password、From、To、Testです。

SMTP Server 送信サーバーとポート

メールを送るためのサーバー名とポート番号を指定します。メールサービスごとに条件が違います。

Login / Password 認証情報

送信サーバーを使うためのログイン情報です。通常のメールパスワードと別の認証が必要な場合もあります。

From / To 送信元と送信先

MT4がどのメールアドレスから、どの宛先へ送るかを見る項目です。複数指定には注意が必要です。

Emailタブで見る項目を分ける

MetaTrader 4公式ヘルプでは、Emailタブは電子メールボックスを設定する場所で、この設定はEAのコマンドや発動したAlertからメッセージを送る時に使われると説明されています。

同じ公式ヘルプでは、メール設定を始めるには Enable を有効にし、SMTP Server、SMTP Login、SMTP Password、From、Toを入力すると説明されています。設定をまとめて見るのではなく、項目ごとに意味を分けると、どこでつまずいているかを追いやすくなります。

公式情報で見るポイント

MetaTrader 4公式ヘルプでは、SMTP ServerはSMTPサーバーのアドレスと利用ポートを入力する項目で、[server web address] : [port number] の形式で記録すると説明されています。例として smtp.your_email_provider.com:25 のような形式が示されています。

SMTP Serverはサーバー名とポート番号をセットで見る

SMTP Server欄では、メールサービスの送信サーバー名だけでなく、ポート番号も見ます。サーバー名が合っていても、ポート番号が違うとTestで失敗することがあります。

また、利用するメールサービスによって、暗号化方式、認証方法、外部アプリからの送信条件が異なる場合があります。MT4側だけで判断せず、メールサービス側の公式ヘルプで、SMTPサーバー名、ポート番号、認証方法を確認してください。

SMTP Serverで見ること
  • SMTPサーバー名がメールサービス公式の情報と一致しているか
  • ポート番号まで入力しているか
  • smtp.example.com:587 のように、サーバー名とポートをセットで見ているか
  • 古い設定例や個人ブログの設定値をそのまま使っていないか
  • 利用しているメールアカウントで外部アプリからのSMTP送信が許可されているか

LoginとPasswordはメールサービス側の条件も見る

MetaTrader 4公式ヘルプでは、SMTP Loginは認証に使うログイン、SMTP Passwordは認証に使うパスワードと説明されています。通常はメールアドレスやメールボックスの認証情報を使います。

ただし、近年のメールサービスでは、通常のログインパスワードとは別に、アプリ用パスワードや追加の認証設定が必要になる場合があります。これはMT4の問題というより、メールサービス側のセキュリティ仕様です。使っているメールサービスの公式情報で、外部メールソフトやSMTP送信に必要な認証方法を見てください。

パスワード欄で止まりやすい点

ブラウザでメールにログインできることと、MT4からSMTPで送信できることは同じではありません。メール通知だけが通らない場合は、SMTP送信用の認証条件を別に見てください。

FromとToは1件ずつ分けて見る

MetaTrader 4公式ヘルプでは、Fromはメッセージの送信元アドレス、Toは送信先アドレスと説明されています。FromにはSMTPに使うメールサーバー上の名前とメールアドレスを入れる項目です。

同じ公式ヘルプでは、FromとToの各フィールドには1つのメールアドレスだけ指定でき、複数のメールアドレスを区切り付きまたは区切りなしで入れても受け付けられないと注意されています。複数宛先へ送りたい場合でも、まずは1件だけでTestを通す方が原因を追いやすくなります。

From 送信元

どのメールアドレスから送るかを指定します。SMTP Loginと関係する場合があります。

To 送信先

通知を受け取りたいメールアドレスを指定します。まずは1件だけで確認します。

複数宛先 最初は避ける

公式ヘルプでは、FromとToはそれぞれ1つのメールアドレスだけ指定できると説明されています。

Testで失敗した時はJournalも見る

MetaTrader 4公式ヘルプでは、Testは指定した設定でテストメッセージを送信し、設定が動作するかを確認するものと説明されています。テストに成功した場合は、OKを押して設定を反映します。

テストに失敗した場合、公式ヘルプではすべての設定を確認し、端末を再起動してから再度テストメッセージを送ることが推奨されています。画面上の失敗表示だけで判断せず、Journalに出るメッセージも合わせて見ると、認証、サーバー、接続、入力ミスのどれに近いかを分けやすくなります。

1
Enableを入れる Emailタブでメール通知を使う状態にします。ここが無効だと設定を入力しても使えません。
2
SMTP Serverを入れる サーバー名とポート番号を、メールサービス公式の形式に合わせて入力します。
3
LoginとPasswordを見る SMTP送信に使う認証情報を入力します。必要に応じてアプリ用パスワードなどの条件も見ます。
4
FromとToを1件ずつ入れる まずは複数宛先にせず、送信元と送信先を1件ずつにしてTestします。
5
TestとJournalを見る Testの結果とJournalを見ます。成功したらOKで保存します。

SendMailを使うEAやインジはEmailタブに依存する

MQL4公式ドキュメントでは、SendMail() はEmailタブの設定画面で指定されたアドレスへメールを送る関数と説明されています。つまり、EAやインジケーター側でメール送信処理があっても、MT4のEmailタブが未設定または無効なら送信できません。

同じドキュメントでは、送信が設定で禁止されている場合やメールアドレスが省略されている場合があり、エラー情報は GetLastError() で確認すると説明されています。また、SendMail() はStrategy Testerでは動作しないとされています。

EA側 メール送信条件を見る

EAやインジケーターの入力設定で、メール通知を有効にしているかを見ます。

MT4側 Emailタブを見る

SendMailはEmailタブの設定を使います。Enable、SMTP、From、Toを見ます。

検証側 Strategy Testerでは分ける

公式ドキュメントでは、SendMailはStrategy Testerでは動作しないと説明されています。

メールが届かない全体問題とは分けて見る

SMTP設定でつまずく時と、メール通知が届かない時は重なる部分があります。ただし、届かない原因は、SMTP設定だけではありません。アラート条件、EA側の通知設定、MT4の起動状態、回線、迷惑メールフォルダ、メールサービス側の制限なども関係します。

この記事では、SMTP設定の見方に絞っています。メール通知が届かない原因を広く見たい場合は、既存記事の「MT4のアラートメールが届かない時に見る設定」とあわせて確認してください。

SMTP設定で見るチェックリスト
  • EmailタブのEnableが有効になっているか
  • SMTP Serverにサーバー名とポート番号を入れているか
  • SMTP Loginがメールサービス側の条件と合っているか
  • SMTP PasswordがSMTP送信用の条件と合っているか
  • FromとToを1件ずつ指定しているか
  • Testで送信できるか
  • 失敗時にJournalを見たか
  • EAやインジケーター側のメール通知設定が有効か
  • Strategy Tester上でメール送信を確認しようとしていないか

ラボメモ

MT4のSMTP設定で迷う時は、まずMT4側の入力欄と、メールサービス側の送信条件を分けて見ると原因を追いやすくなります。

古い設定例をそのまま使うより、現在使っているメールサービスの公式情報でSMTPサーバー、ポート、認証方法を見直してください。

用語集であわせて見たい言葉

関連して読みたい記事

まとめ

MT4メール通知のSMTP設定でつまずく時は、EmailタブのEnable、SMTP Server、SMTP Login、SMTP Password、From、Toを分けて見ます。特にSMTP Serverは、サーバー名だけでなくポート番号まで含めて確認します。

Testで失敗する場合は、入力ミスだけでなく、メールサービス側のSMTP送信条件、認証方法、外部アプリ利用条件も見てください。成功したらOKで保存し、失敗した場合はJournalも合わせて確認します。

EAやインジケーターの SendMail() は、MT4のEmailタブ設定に依存します。Strategy Testerでは動作しない点も分けて見ておくと、検証中にメールが来ない理由を誤解しにくくなります。

参考文献
  • MetaTrader 4 Help「Email」https://www.metatrader4.com/en/trading-platform/help/setup/setup_email
  • MQL4 Documentation「SendMail」https://docs.mql4.com/common/sendmail
  • MQL4 Documentation「Runtime Errors」https://docs.mql4.com/constants/errorswarnings/errorcodes