【Azureでメールサーバ #1】 送信メールを迷惑メールにさせない方法!!

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、今回はAzure上のCentOSサーバから送信したメールを迷惑メールにさせない方法をご紹介します。

【Azureでメールサーバ #1】 送信メールを迷惑メールにさせない方法!!ここ
【Azureでメールサーバ #2】 Mailmanを利用し、メーリングリスト送信を実現する方法!!
【Azureでメールサーバ #3】 Azure DNSを利用し、メールサーバを外部公開する方法!!
【Azureでメールサーバ #4】 メール送信者の「sendgrid.me 経由」を非表示にする方法!!

私も当初は普通にPostfixを構築してメール送信すればいいのでは?
と考えていました・・・がメール送信に関する情報を集めていたら、日本マイクロソフトの公式ブログより、以下の記事を見つけました。

Azure 上にメールサーバー/SMTP サーバーを構築する場合の注意事項

確かにAzureでサーバをデプロイした際、動的にパブリックIPが発行されますが、そのIPが以前どのような利用をされていたのかはわかりません。
もしかすると、悪意のある迷惑メール業者がそのIPを利用していた場合もあるわけです。
この観点はメール送信に関わらず、Azure上でサービスを開始する際に十分考慮する必要があると思います。

また最近、メールのセキュリティに対して非常に関心が高まっていると思われます。
各社セキュリティソフトウェアによるスパム、フィッシングメール対策やフィルタリング機能の強化。
Google Gmailが先日導入したSSL/TLS化されていないメールや、送信ドメイン認証(SPF、DKIM)されていないアドレスからのメールを警告表示する機能など日々セキュリティを意識させられます。

よって、今回はAzureのアドオンとして組み込まれているメール配信サービス「SendGrid」を利用して、Linux標準のMTA「Postfix」からメール送信する方法をご紹介します。

SendGridの導入

Azureポータルから [新規] > [アドオン] > [SendGrid Email Delivery] > [作成] をクリックします。
0929150227_0011

新規登録画面にて以下を入力します。
● Name : 任意の文字列を入力します。英数字のみ。
● Password : 任意の文字列を入力します。英数字のみ。
● Confirm Password : Passwordと同じ文字列を入力します。
● サブスクリプション : 利用するサブスクリプションを選択します。
● Resource group : リソースグループを選択します。
0929150248_00112
● pricing tier : プランを指定します。今回は無料版「F1 Free」を選択します。
0929150856_0011
● Contact Information : 氏名やメールアドレスを入力します。
0929151022_0011
● 法律条項 : 内容を確認し、「購入」をクリックします。
0929151053_0011

上記入力後、「作成」をクリックすることで SendGrid が有効になります。

Postfix構築

Azure上の仮想サーバに Postfix を構築します。
以降はroot権限のあるユーザでの操作を想定しています。

仮想マシン構成

【インスタンスサイズ】
A2 Basic (Core:2/RAM:3.5GB)

【OS】
CentOS release 7.2 x86_64

インストール

必要なパッケージをインストールします。

# yum -y install postfix cyrus-sasl-plain

設定追加

Postfixの送信に関する最低限の設定と送信メールを SendGrid に転送するための設定を追加します。

# cd /etc/postfix/
# cp -p main.cf main.cf.org
# vi main.cf
# diff main.cf.org main.cf
< inet_protocols = all
> inet_protocols = ipv4

> myhostname = siostest01 :仮想サーバのホスト名
> mydomain = siostest.com :利用するドメイン名
> myorigin = $mydomain

> smtp_sasl_auth_enable = yes
> smtp_sasl_password_maps = static:[Username]:[Password] ※1
> smtp_sasl_security_options = noanonymous
> smtp_tls_security_level = encrypt
> header_size_limit = 4096000
> relayhost = [smtp.sendgrid.net]:587

# systemctl restart postfix

※1
[Username]及び[Password]はAzureポータルから以下を参照し、入力してください。
[SendGrid Account] > [作成名] > [Settings] > [Configurations]

メール送信テスト

ローカルで以下コマンドを実行し、テストメールを送信します。

# echo "test mail" | mail -s "test mail" [送信先アドレス]

送信先アドレスのメールボックスを確認します。

SendGridを利用した場合

0930150441_0011

SendGridを経由していることがわかります。

SendGridを利用しなかった場合

0930150452_0011

迷惑メールに振り分けられていることがわかります。(Gmailデフォルト設定)

まとめ

今回は最小限の変更でメールの送信方法をご紹介させて頂きました。
Azureでは簡単かつ迅速にSendGridを導入することが出来るため、時間効率が非常に高いです。
上記を見ていただくとおり、SendGridへ転送した場合としない場合とでユーザへの見え方が異なります。
参考例としてGmaiの画面を掲載させて頂きましたが、他のメールサービスでも同様に表示されることが十分考えられますので、セキュリティを意識して設計する必要があると思います。

サイオステクノロジー株式会社 山田

合わせてどうぞ

【Azureでメールサーバ #2】 Mailmanを利用し、メーリングリスト送信を実現する方法!!

【Azureでメールサーバ #3】 Azure DNSを利用し、メールサーバを外部公開する方法!!


https://tech-lab.sios.jp/archives/3878

アバター画像
About 山田康裕 27 Articles
20代前半からLinux系OSSや認証基盤を中心とした提案/設計/構築を担当。特に仕事を選ばない、何でも屋さん。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる