Discussions
Categories
Email Deliveryを利用した外部へのメール送信(その2 メール送信編) - Oracle Cloud Infrastructureアドバンスド

目次に戻る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう
この章は「チュートリアル:Email Deliveryを利用した外部へのメール送信(その1 配信環境構築編) - Oracle Cloud Infrastructureアドバンスド 」の続きとなります。
APサーバに見立てたサーバよりEmail Deliveryサービス経由で外部にメール送信する環境を構築しながら手順を学習します。
メール送信環境について
以下2つのケースを例にメール送信環境を構築します。
- Linux環境からのメール送信 :Linuxサーバ上のアプリケーションよりOS標準メールコマンドと連携してメール配信することを想定したメール送信環境の構築
- Windows環境からのメール送信 :Windowsサーバ上のJavaアプリケーションよりメール配信することを想定したメール送信環境の構築
1.Linux環境からのメール送信
メール送信環境を構築するため、事前に準備したLinux環境で作業を行います。
所要時間 : 約10分
前提条件 :
- チュートリアル:Email Deliveryを利用した外部へのメール送信(その1 配信環境構築編) - Oracle Cloud Infrastructureアドバンスド を通じてEmail Deliveryサービスの配信環境の準備が完了していること
- チュートリアル:インスタンスを作成する - Oracle Cloud Infrastructureを使ってみよう(その3) を通じてインスタンスをひとつ作成していること
構築環境
- OS : Oracle Linux 7.6 (OCI コンピュート・インスタンス)
- メールコマンド : mailx
1-1.メール送信環境の設定
事前に作成してあるLinuxインスタンスにログインします。
メールをコマンドラインから送信するために、OS標準で用意されているmailxコマンドを利用します。
メール環境を定義するファイルはメールを送信する際のユーザホームディレクトリ配下の~/.mailrcファイルに記載します。
※例)opcユーザの場合 : /home/opc/.mailrc
$ vi ~/.mailrcset smtp-use-starttlsset smtp=smtp://smtp.us-ashburn-1.oraclecloud.com <==Email Deliveryのエンドポイントを指定set smtp-auth=plainset smtp-auth-user= [USERNAME] <==IAMユーザのSMTP Credentials USERNAMEのOCIDset smtp-auth-password= [PASSWORD] <==上記ユーザのパスワード set ssl-verify=ignoreset nss-config-dir=/etc/pki/nssdb/set [email protected] <==送信者メールアドレス(Fromアドレス)
1-2.メール送信テスト
コマンドを実行してメールを送信してみます。
$ echo "Test Mail" | mailx -s "test mail" [recipient user]@oracle.com
上記メールユーザ([recipient user]@oracle.com)でメール受信できれば完了です。
以下は実際に受信したメールのサンプルです。
Subject: test mailDate: Mon, 10 Dec 2018 15:49:54 +0900From: [email protected]To: [recipient user]@oracle.comTest Mail
1-3.メール送信例
実際利用する場合には、シェルスクリプトの実行結果やログの内容を送付するもあります。
そのような場合には、mailxコマンドに出力ファイルの内容をリダイレクトすることにより本文として挿入することが可能です。
1.サンプルログの出力
$ echo "`/bin/date '+%Y/%m/%d %H:%M:%S'` :SAMPLE LOG MESSAGE" >SAMPLELOG.log$ cat SAMPLELOG.log2018/12/10 16:14:06 :SAMPLE LOG MESSAGE
2.サンプルログを本文に挿入してメール送信
$ mailx -s "SAMPLE LOG" [recipient user]@oracle.com < SAMPLELOG.log
3.実際に受信したメールの内容
Subject: SAMPLE LOGDate: Mon, 10 Dec 2018 16:14:54 +0900From: [email protected]To: [recipient user]@oracle.com2018/12/10 16:14:06 :SAMPLE LOG MESSAGE
2.Windows環境からのメール送信
メール送信環境を構築するため、事前に準備したWindows環境で作業を行います。
所要時間 : 約20分
前提条件 :
- チュートリアル:Email Deliveryを利用した外部へのメール送信(その1 配信環境構築編) - Oracle Cloud Infrastructureアドバンスド を通じてEmail Deliveryサービスの配信環境の準備が完了していること
- Java開発環境および実行環境がインストールされているWindows環境(Email Deliveryサービスに接続するため、インターネット接続可能であること)
構築環境
- OS : WindowsServer2016 Standard (OCI コンピュート・インスタンス)
- Java : Java SE 1.8.0_181
- JavaMail : JavaMail 1.6.2
2-1.JavaMailの導入・設定
JavaMailはメール・アプリケーションを簡単に構築するためのJavaライブラリです。
JavaMailを導入してメール送信環境を構築します。
作業ステップ
1.JavaMailのダウンロード(本時点での最新リリースは1.6.2)
最新のJavaMail APIはGitHubよりダウンロード可能です。
https://javaee.github.io/javamail/
2.ダウンロードしたJavaMailを任意のフォルダに配置します(今回は C:¥javamail¥javax.mail.jar に配置)
3.JavaMail APIを利用可能にするため、ダウンロードしたファイル(javax.mail.jar)を含むようにCLASSPATH環境変数を追加します。
※参考 https://javaee.github.io/javamail/docs/classpath-NT.html
4.同サイトにてJavaMail APIを用いたサンプルプログラムが提供されています。
サンプルプログラムを任意のフォルダにダウンロードして展開します。(今回はC:¥javamail¥javamail-samples に展開)
【サンプルプログラム】
https://github.com/javaee/javamail/releases/download/JAVAMAIL-1_6_2/javamail-samples.zip
5.展開したフォルダに smtpsend.java というサンプルコードがあります。
(smtpsend はSMTPを用いてメール送信するためのサンプルプログラムです)
6.smtpsend.java ファイルをコンパイルし、クラスファイルを作成します。
すると、同フォルダ内に smtpsend.class が作成されます。
以上で、JavaMailの準備は完了です。
2-2.メール送信テスト
手順「2-1.JavaMailの導入・設定」で作成した、smtpsend クラスファイルを実行してメール送信します。
作業ステップ
1.smtpsend によるメール送信の実行例は以下の通りです。
java smtpsend -M "[メール送信先ホスト名]" -A -U "[IAMユーザのSMTP Credentials USERNAMEのOCID]" -P "[ユーザ作成時のパスワード]" -o [送信者アドレス(from)]
オプション例
-M : メール転送先ホスト
-A : SMTP認証の有効化
-U : SMTP認証のユーザ(IAMユーザのSMTP Credentials USERNAMEのOCID)
-P : SMTP認証のパスワード
-o : メール送信時のfromアドレス指定
※メッセージ入力を終える際には、「 Ctrl + Z 」を送信
2.送信先でメールを受信しているか確認してください。
正常にメールを受信していることが確認できれば、メール送信テストは完了です。
以上で、本章の作業は終了です。
Email Deliveryサービスは環境を問わずSMTPで接続するだけで容易にメール送信環境を利用することができます。
ちょっとしたメール環境がほしいなと思ったら、Email Deliveryサービスを利用してみてください。