質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

12503閲覧

EC2で構築したsendmailから一定期間に繰り返し送信すると「Connection timed out」になる。

KazumasaTanaka

総合スコア41

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1グッド

1クリップ

投稿2016/09/04 01:43

現在AWSのEC2を利用してwebサービスを構築しております。

本サービスで、メール送信を行う処理があり、
**インスタンス(Amazon Linux)**にデフォルトでセットアップされている
**sendmail(8.14)**をMTAとして利用し、ポート587でサービスを実行しています。

メール送信をするにあたり、
短時間で、複数件数のメール送信を実行すると数件目以降で
Connection timed out with {mxホスト名}が発生しメールが相手サーバーに送信されない現状が発生しております。

メール送受信に関して確認している現象と発生条件は下記の通りになります。

  1. 短時間で、同一のメールサーバー相手に複数件数のメール送信を実行すると2件目以降

Connection timed out with {mxホスト名}が発生しメールが相手サーバーに送信されない

  1. 短時間で、複数件数(4件で検証)のメール送信を実行しても、相手先メールサーバーホストが別々であれば送信できる。

  2. 1.に関して、しばらく(10分ほど)して、sendmailのサービスを再起動すると、

残っていたと思しき送信キューが実行され、送信先が同一ホストの繰り返しになるまでは送信される。

上記現象について、以下のような原因を疑っておりますが、判断ができず行き詰っている次第です。

  • EC2のメール送信制限にかかっている。

下記などを参考にしポート587で運用していますが、
現在のAWSのポリシー変更などで制限がかかっている。
http://d.hatena.ne.jp/ksaka-ew/20130502/1367487703

  • sendmail自体に、同一ホストに連続メール送信を行った場合に一定時間のインターバルを必要とする制約がある

上記原因にかかわらず、確認すべき観点についてのアドバイス拝受やお知恵の拝借をしたくご質問させていただきました。
どうぞよろしくお願いいたします。

<587ポートの状態>
netstat -na | grep 587
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN

<sendmail.cfのベースとしたsendmail.mc>

divert(-1)dnl
include(/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(setup for linux')dnl
OSTYPE(linux')dnl define(confDEF_USER_ID', ``8:12'')dnl
define(confTO_CONNECT', 1m')dnl
define(confTRY_NULL_MX_LIST', True')dnl
define(confDONT_PROBE_INTERFACES', True')dnl
define(PROCMAIL_MAILER_PATH', /usr/bin/procmail')dnl
define(ALIAS_FILE', /etc/aliases')dnl
define(STATUS_FILE', /var/log/mail/statistics')dnl
define(UUCP_MAILER_MAX', 2000000')dnl
define(confUSERDB_SPEC', /etc/mail/userdb.db')dnl
define(confPRIVACY_FLAGS', authwarnings,novrfy,noexpn,restrictqrun')dnl
define(confAUTH_OPTIONS', A')dnl
define(confTO_IDENT', 0')dnl
FEATURE(no_default_msa', dnl')dnl
FEATURE(smrsh', /usr/sbin/smrsh')dnl
FEATURE(mailertable', hash -o /etc/mail/mailertable.db')dnl
FEATURE(virtusertable', hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, ', procmail -t -Y -a $h -d $u')dnl
FEATURE(access_db', hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(blacklist_recipients')dnl EXPOSED_USER(root')dnl
DAEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA')dnl DAEMON_OPTIONS(Port=submission, Name=MSA, M=Ea')dnl
FEATURE(accept_unresolvable_domains')dnl LOCAL_DOMAIN(localhost.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

tanat👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

質問に対しご回答を下さった皆様ありがとうございます。

今回は以下の対処を施し、根治ではありませんが解決策といたしました。

/etc/sysconfig/sendmailのリトライサイクルを短くする。

/etc/mail/sendmail.mcに下記を短縮/追記しキューのサイクルとタイムアウトを短くする。
※m4を利用し、sendmail.cfに変換

define(confTO_CONNECT', ')dnl
define(confMIN_QUEUE_AGE',
')dnl

投稿2016/09/06 03:53

編集2016/09/06 03:54
KazumasaTanaka

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

自分もAWSからメールを送信してメールの遅延に悩まされたことがあります。完全にメールが届かないというわけではなく、ログを見ると送信しているけれど最大50分程度の遅延が発生しておりました。
その際はAWSにメール送信上限解除の申請を出して解決いたしました。

以下、当時使用した参考資料です。
http://dev.classmethod.jp/cloud/aws/ec2-send-email-best-practice/
http://www.slideshare.net/AmazonWebServicesJapan/aws-42885668

参考になれば幸いです。

投稿2016/09/05 02:47

SASAHARA

総合スコア247

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KazumasaTanaka

2016/09/06 03:42

とても参考になる資料ありがとうございます。 今回は、awsに対する制限解除の問い合わせで特に制約に引っかかっていないとのコトで sendmaiとOSのキューリトライサイクルを見直し運用レベルの対処をいたしました。 今後、対象のサービスでメール配信機能を実装する予定があり、 今回いただいた情報を活用させていただきたい次第です。 またの機会がありました際にはどうぞよろしくお願いいたします。
guest

0

AWS の送信制限だと思います。
EC2 sendmail で受けたメール(25番ポートでも 587番ポートでも)は、宛先 MTA の 25番ポートに送信します。

投稿2016/09/04 08:35

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KazumasaTanaka

2016/09/06 03:36

awsのサポートに問い合わせを行い制限解除申請を依頼したところ、 現状特段制限を設けていないとの回答をえました。 質問段階での私のAWSメール送信制限の対象に対する理解が不足していたため質問の内容が至らぬものとなってしまったのですが、 ローカルネットワークに構築したメール送信サーバーについては、制限の対象にならなかったようでした。 今回、最終的には、同一ホストに対する連射がConnection timeoutになる問題は解決できませんでしたが リトライのタイムラグについてはsendmailとOSのqueueの再処理のサイクルにより、 短縮ができ、 ユーザーに対するメール送信が実行される頻度は少ないため現状で一旦処置完了といたしました。 いつもご回答下さりありがとうございます。 これからも、どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問