BeeX Technical BlogSAP、ZabbixからOffice365 SMTPサーバ経由でメールを送信するには

オンプレミスにメールサーバがあった時代には、Zabbixなどの監視ツールやSAP内からのメール送信は、オンプレミスのSMTPサーバを使用し、SMTPサーバでの認証等もなく、トラブルことも少なかったと思います。

最近では、Office365の利用が増えています。その際に、社内のSMTPサーバを廃止されるケースがあります。そのような環境で、監視ツールなどからのメール送信に、Office365のSMTPサーバを使用するケースがあります。

今回、紹介するのは、Office365のSMTPサーバを使用し、ZabbixとSAPからメールを送信する方法です。

AWSからメール送信の制限解除

AWS EC2上からインターネットに対するメール送信は、通信量が制限されています。AWSへの制限解除申請が必要です。詳しくは、AWSのFAQを参照してください。

 

Office365のSMTPを使用して、メールを送信する際の留意点

次にSMTPサーバを使用し、メールを送信します。Offce365のSMTPサーバは、インターネットからアクセスできるようになっていますが、スパムメール等の送信を避けるため、メール送信(SMTP)で認証が必要であったり、送信先に制限があります。

SMTPサーバへの接続方法により、送信できる宛先は次の制限があります。送信先がOffice365ユーザのみ場合には、2.SMTPサーバで認証せずメール送信(今までの方法)を使うことができます。詳しくは、Office365のサポートサイトを見てください。

メール送信方法1.SMTPサーバにユーザ・パスワード認証を行いメール送信2.SMTPサーバで認証せずメール送信(今までの方法)3.SMTPサーバで接続元をIPアドレスで認証
自分のドメインの受信者への送信
Office 365 を使ってインターネットにメールを送信×
送信先/ポートsmtp.office365.com / 587 (推奨) または 25MX エンドポイント / 25MX エンドポイント / 25

MXエンドポイントは、nslookup コマンドを使って、set type=MX を入力した上で、ドメイン名を入力すると、検索できます。

ZabbixからのOffice365 SMTPサーバを使ったメール送信

次に監視ツールのZabbixからOffice365のSMTPサーバを使って送信してみます。例としてOffice365の自分のアカウントを使用して認証していますが、Zabbixで次のように設定します。ただし、ドメイン名などは実際のものではありません。

実際にメール送信を行うと次のエラーが発生し、メール送信できません。エラー内容から正しく認証できていないようです。

調べたところ、SMTPサーバでの認証時にパスワード情報等を送信する方式には、PLAINかLOGINの方式が主に使用されていますが、Office365ではLOGINのみサポートされ、ZabbixはPLAINを使用する作りになっています。

ZabbixでOffice365のSMTPサーバを使用する場合には、認証無しか、IPアドレス認証を使用する必要があります。Office365側のIPアドレス認証を設定してあげると、他のドメインにもメール送信できることを確認できました。

ZabbixのUpgrade(3.0だと、3.0.11)で対応されるようです。下記3.0.11のマニュアルからの引用です。なお、本ブログ執筆時点での最新のZabbixは、3.0の場合3.0.7です。

SMTP authentication for e-mail Previously Zabbix would enforce PLAIN as the authentication mechanism when using username/password. Now libcurl may decide on its own which mechanism among those supported by the SMTP server to choose. With the parameters Zabbix passes to libcurl it effectively means choosing between PLAIN and LOGIN on most occasions. This is enough to enable Zabbix operation with Office 365 and should be enough for Gmail provided that “less secure apps” are allowed.

SAP NetWeaver ABAPからのOffice365 SMTPサーバを使ったメール送信

SAP NetWeaver ABAPからもOffice365のSMTPサーバで認証を行った上でメール送信ができます。SMTPサーバの認証は、7.31 Support Package 6、カーネル7.21以降で対応されています。

詳しくは、1747180 – SMTP via TLS and SMTP authentication を参照ください。また、Office365のSMTPを使用する場合には、2000465 – Support of AUTH LOGIN as SMTP clientも参考にしてください。

SMTP認証なしでのSAPからのメール送信

まず、SMTP認証なしで自分のメールアドレスに送信してみます。トランザクションコード: SCOTで設定を行います。下記はSMTPサーバの設定画面です。

テストメールの送信を行ってみると、受信はできますが、次のようにJunkメールに分類されてしまいました。これについては、DNS の設定で、SPF レコードに静的 IP アドレスを追加することで、迷惑メールに分類されることを避ける必要があります。詳しくは、Office365のサポートサイトを見てください。

SMTP認証有でのSAPからのメール送信

次は認証を設定してみます。先ほどとはメールホストとポートが異なり、セキュリティ設定も行います。

 

Office365用のユーザ名とパスワードで認証を行います。

テストメールの送信を行ってみると、期待通りにJunkメールではなく、受信できました。

 

まとめ

実際にメール送信のテストを行ってみると、意外にもOpenなZabbixの方がOffice365でのSMTP認証対応が遅れていたのが驚きでした。

SAPシステムはOffice365のSMTP認証可能ですが、SAPのバージョンに注意が必要です。ある日、会社のメールシステムがOffice365に変わるからSAPで使うSMTPサーバ切り替えてと言われたら、自社のSAPバージョンがSMTP認証未対応ということがあるかもしれません。その場合には、慌てず速やかにIPアドレス認証をOffice365担当者に実施してもらってください。

 

カテゴリ

タグ

BeeX Technical Blogについてのお問い合わせ

BeeX Technical Blogのエントリにご質問が御座いましたらお気軽にお問合せください。

お電話でのお問い合わせ

☎ 03-6214-2830

受付時間 平日9:30〜18:00

フォームでのお問い合わせ

お問い合わせフォーム