タグ: SendMail

  • 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
  • MT5のメール通知が届かない時に見る設定

    MT5でメール通知が届かない時は、アラート側だけでなく、プラットフォーム側のEmailタブ、SMTP情報、From/To、Test送信、メールサービス側の条件を分けて見る必要があります。

    この記事では、MT5のメール通知を「Alertsタブから送る場合」と「MQL5プログラムからSendMail()で送る場合」に分けて、どこを見るかを整理します。

    先に短く言うと

    MT5のメール通知は、チャートやインジケーターだけで完結する機能ではありません。MT5本体のEmail設定、メールサービス側のSMTP条件、アラート側のAction、メール本文の設定が組み合わさって動きます。

    届かない時は、まずMT5のEmailタブでTest送信できるかを見ます。その後、AlertsタブのActionがEmailになっているか、EAやインジ側でSendMail()を使っているかを分けて見ます。

    見る順番

    Emailタブ → Test送信 → AlertsタブのAction → アラート条件 → SendMail()の有無 → メールサービス側の制限、という順番で見ます。先にアラートだけを作り直すと、原因が遠回りになります。

    MT5のメール通知で分けたい2つの経路

    MT5のメール通知には、大きく分けて2つの入口があります。標準アラートから送る場合と、EA・インジケーター・スクリプトなどのMQL5プログラムから送る場合です。

    経路どこから送るか見る場所
    アラートから送るメールToolboxのAlertsタブでActionにEmailを選ぶAlertsタブ、メール作成画面、Emailタブ
    MQL5プログラムから送るメールEA、インジケーター、スクリプトなどでSendMail()を呼ぶコード、Expertsログ、Journalログ、Emailタブ

    どちらの経路でも、MT5のEmailタブ設定を使います。アラートを何度作り直しても、Emailタブ側が合っていなければ届きません。

    Emailタブで見る項目

    MT5のEmailタブでは、メール送信に必要なSMTP情報と送信元・宛先を設定します。メールサービスごとに必要なサーバー名、ポート番号、認証方法が異なるため、利用しているメールサービスの公式情報も合わせて見ます。

    項目見ることつまずきやすい点
    Enableメール通知設定が有効かを見るSMTP情報が入っていても、有効化されていなければ送信されません。
    SMTP serverサーバー名とポート番号を見るサーバー名だけでなく、ポート番号や暗号化方式が関係する場合があります。
    SMTP loginログイン名を確認するメールアドレス全体が必要な場合と、ユーザー名だけの場合があります。
    SMTP passwordパスワードやアプリ用パスワードを見る二段階認証を使っている場合、通常パスワードでは送れないことがあります。
    From送信元メールアドレスを見るFromとSMTPログインの組み合わせが合わないと止まる場合があります。
    To宛先メールアドレスを見る誤入力、複数指定、迷惑メール側の扱いを見ます。
    Test設定だけで送信できるかを見るここで失敗する場合、アラートやEA側へ進む前にEmailタブを見直します。

    アラート側でEmailを選んでいるかを見る

    ToolboxのAlertsタブで作るアラートには、ActionとしてSound、File、Email、Notificationなどがあります。メール通知にしたい場合は、ActionがEmailになっているかを見ます。

    Soundのままなら音だけ、Notificationならスマホへのプッシュ通知側を使います。メールが届かない時は、まずActionの取り違えを見てください。

    Alertsタブで見ること
    • ActionがEmailになっているか
    • 条件がBid、Ask、Last、Volume、Timeなど意図した内容か
    • アラートが無効化されていないか
    • 有効期限が切れていないか
    • 繰り返し間隔や最大回数が意図した内容か
    • Testボタンで動作を見たか

    SendMail()を使うEAやインジの場合

    EAやインジケーター側でメールを送る場合、MQL5のSendMail()が使われることがあります。SendMail()は、MT5のEmailタブで指定された設定を使ってメールを送る関数です。

    そのため、コード側にSendMail()があっても、EmailタブのEnable、SMTP server、login、password、From、Toが合っていなければ、メール送信は成立しません。

    テスター上では見方が変わる

    MQL5リファレンスでは、SendMail()はストラテジーテスター内では動作しないと説明されています。テスター上で届かない場合は、通常チャート上での動作と分けて見ます。

    届かない時の切り分け順

    1. EmailタブでEnableが有効かを見る
    2. SMTP server、login、password、From、Toを見直す
    3. EmailタブのTestで送信できるかを見る
    4. AlertsタブでActionがEmailになっているかを見る
    5. アラート条件、有効期限、繰り返し設定を見る
    6. EAやインジの場合、SendMail()の有無とログを見る
    7. メールソフト側の迷惑メール、受信制限、セキュリティ通知を見る

    ラボメモ

    MT5のメール通知は、アラート設定だけでなく、SMTP認証、送信元、宛先、メールサービス側の制限が重なって動きます。

    届かない時は、最初にTest送信でプラットフォーム側の設定を見てから、アラートやEA側の条件へ進むと原因を分けやすくなります。

    メールサービス側で見ること

    MT5側の項目が合っているように見えても、メールサービス側の条件で止まることがあります。二段階認証、アプリ用パスワード、外部アプリからのSMTP送信許可、セキュリティ通知などです。

    この部分はメールサービスごとに変わります。具体的なサーバー名、ポート番号、認証方法、パスワードの扱いは、利用しているメールサービスの最新ヘルプで見てください。

    MT5メール通知とプッシュ通知の違い

    メール通知とプッシュ通知は、どちらもアラートの通知先として使えますが、設定場所が異なります。

    種類使う設定主に見る項目
    メール通知EmailタブSMTP server、login、password、From、To、Test
    プッシュ通知NotificationsタブMetaQuotes ID、有効化、Test送信

    メールが届かないからといって、すぐにプッシュ通知側を触ると原因がずれることがあります。ActionがEmailなのかNotificationなのかを先に見てください。

    用語を先に押さえる

    メール通知の設定で詰まりやすい場合は、用語の意味を先に押さえておくと読みやすくなります。

    関連して読みたい記事

    まとめ

    MT5のメール通知が届かない時は、アラート画面だけで判断せず、EmailタブのEnable、SMTP server、login、password、From、To、Test送信を先に見ます。

    そのうえで、AlertsタブのActionがEmailになっているか、アラート条件や有効期限が合っているかを見ます。EAやインジから送る場合は、SendMail()とログも分けて見てください。

    メールサービス側の仕様は変わることがあるため、SMTPサーバーや認証方法は、利用しているメールサービスの公式情報で最新条件を確認してください。

    参考文献