AWS に acmailer と MMDS で作るメール配信システム

AWS

2015.10.21

Topics

今回は、AWS(EC2) から簡単に使えて、尚且つ到達率の高いメール配信システムを作ってみました。
利用するのはインスタンスとしてEC2、メール配信CGIとして無料で使えるメール配信CGI「acmailer」、メールの接続先として、日本の携帯キャリアへの配信も考慮し、当社の配信サービス MMDS を利用します。
aws でアカウントを・・・と言った説明は省略し
既に CentOS-6.x系で、インスタンスが起動している事を前提ですすめます。

acmailer のインストール

先ずは、acmailer のインストールですが
acmailer のサイト から
「今すぐダウンロード」をクリックし、正式版か開発版かどちらかを決めて「ダウンロード」して下さい。
その際の、perlパスは、CentOS系でしたら(標準)のままです。
きっと、install.cgi がダウンロードされたと思います。
このファイルは、インストールするEC2のインスタンスにSCPします。
このあたりの説明は
acmailer│ダウンロード&インストール
を参考にして頂ければ、良いかと思いますが
まずは、apache をインストールして起動します。

#yum install httpd
#chkconfig --level=3 httpd on
#service httpd start

EC2 Management Console から
Security Group で、Inbound の制限を必要に応じて実施して下さい。
acmailer 専用で構築しようと思いますので
トップディレクトリーからパーミッションを変更します。

#chmod 777 /var/www/html

ここに、install.cgi を配置して
ブラウザーからアクセスします。
http://”Public DNS”/install.cgi
そのままだと、cgi の内容が表示されるだけですので
設定ファイル(/etc/httpd/conf/httpd.conf)を編集して
ドキュメントルートでの、CGI の実行を許可します
ディレクトリー
の下の
331行目あたり

Options Indexes FollowSymLinks

Options Indexes FollowSymLinks ExecCGI


90584a96
796行目

#AddHandler cgi-script .cgi

AddHandler cgi-script .cgi


f241e63b
保存したら、httpd を再起動します

service httpd start

ブラウザーで再度アクセスします。
・・・
無事にインストールが終わりますので、install.cgi は削除して
設定に入ります。
まずは、From アドレスの設定です。
b2f40866
NHN Techorus MMDS for クラウドですが
Fromのアドレスに対してパスワードが発行されます。
このアドレスのドメインパートの、AレコードとMXレコード
そして、TXTレコードとして指定される _spf.ko-sokumail.net が登録されていないと
認証されないらしいので、DNSの設定を行う必要がありました。
acmailer は、SMTP-AUTHに対応しているので

http://"Public DNS"/login.cgi?

でログインし
上部の「各種設定」をクリックし
menu の中の「送信サーバー設定」で
「外部サーバー」を選択し
「認証方法」で「SMTP承認」を選択します
「ホスト名」は、”smtp.ko-sokumail.net” 「ポート」は、”25″
「ユーザ名」「パスワード」は、契約時の物を入力して「更新」します。
d8108e09
早速、「メール配信」を・・・と思ってテストをしても全く届きません。
これは、acmailer が TLS に対応していない為でした。
acmailer のライセンスとして

http://www.acmailer.jp/license/

CGIの改変・カスタマイズも○となっていますので
ちょっとだけ、手を加えてみます。

yum -y install perl-Net-SMTPS

以下もインストールされると思います。

(perl-IO-Socket-SSL)
(perl-Socket6)
(perl-IO-Socket-INET6)
(perl-GSSAPI)
(perl-Authen-SASL)

cd /var/www/html/lib

clsMail.pm を編集します
592行目の

my $SMTP = Net::SMTP->new($relay_host,Port=>$relay_port,Debug =>$debug);

require Net::SMTPS;
my $SMTP = Net::SMTPS->new($relay_host,doSSL=>'starttls',SSL_version=>'TLSv1',Debug =>$debug);

ca36d41a
これで、どうでしょう。
無事、送れましたでしょうか?
この後、メール送信制限解除申請をフォームからしておけば安心ですね。
また、acmailerオンラインマニュアルで機能を確認しながら、使ってみましょう。
(当記事は、当社エンジニアブログに掲載されていたものを加筆修正し転載したものです。)

編集部

AWSを中心としたクラウドインフラやオンプレミス、ビッグデータ、機械学習などの技術ネタを中心にご紹介します。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら