SMTP送信にて「即時配信」「予約配信」が「不測のエラー」となる
Version 1.87 導入後、localhostからは標準メルマガは送信できたのですが、
送信設定「SMTPサーバを個別に指定する」にして、
「即時配信」や「予約配信」を行うと送信されず、
「配信履歴一覧」を確認すると「不測のエラー」となります。
ただし、
1)送信設定画面のSMTP指定で、
「設定保存時に送信テストを行う」にチェックを入れて
「保存」ボタンをクリックすると、正しく送信されます。
ちなみに、以下の場所でも、「設定保存前に送信テストを行う」にて
問題なく送信されます。
共通設定>システム情報>SMTPサーバ
共通設定>SMTP設定
2)記事作成画面から「テスト配信」も問題なく送信できます。
「不測のエラー」の原因がわからず困っているですが、
詳細なエラー情報など、どのようにして調べたらよろしいでしょうか?
関係ないかもしれませんが、CRONは次のように問題なく動いているようです。
OK! action.cgi succeeded in creating a process. (action.cgiはプロセスの生成に成功しました。)
平素はMilkyStepをご利用いただきありがとうございます。
SMTP認証を採用しているメールサーバを利用する際は、
「メール送信設定」→「SMTPサーバを個別に指定する」
を選択した際に、「SMTP認証(SMTP Auth)」の「行う」
にチェックが入っているかご確認ください。
所定のモジュールが足りない場合、ここの表示が
グレーとなり、選択ができません。
この場合は、SMTP認証(SMTP Auth)の機能が利用
できないため、そのメールサーバを指定してのSMTP
送信は行うことができません。
テスト送信時に送ることができたとのことでござい
ますが、例えば「SMTP認証(SMTP Auth)」の認証と、
「POP before SMTP(SMTP after POP)」の認証を
を併用しているメールサーバ(エックスサーバの
一部のプランなど)の場合、テスト送信時などには、
メール受信のタイミングの関係で、一時的に
送ることができる場合があります。
なおMilkyStepは、「POP before SMTP(SMTP after
POP)」認証には対応しておりません。
予めご了承ください。
これにより、本配信時には、SMTP認証が通らず
エラーとなった可能性がございます。
> 関係ないかもしれませんが、CRONは次のように
> 問題なく動いているようです。
> OK! action.cgi succeeded in creating a
> process. (action.cgiはプロセスの生成に成功
> しました。)
こちらは本現象には直接関係なく、CRONは正常動作
しているものと思われます。
> 「不測のエラー」の原因がわからず困っているですが、
> 詳細なエラー情報など、どのようにして調べたら
> よろしいでしょうか?
「不測のエラー」は、アプリ側(Milkystep側)で
把握できないエラーに分類されるため、そのような
名称になっております。
実質的には、配信を行っていたプロセス(タスク)が
何らかの原因で消滅した際に表示されます。
従いまして、プロセス(タスク)の消滅原因は、
その際のサーバの状態など多岐にわたるため、アプリ
側(Milkystep側)で判断・制御することは困難と
なります。
ご回答いただき、ありがとうございます。
「SMTP認証(SMTP Auth)」の「行う」には
チェックを入れてテストしています。
SMTPサーバは、AWSのSESを使っています。
「POP before SMTP(SMTP after POP)」認証ではありません。
このサーバで今までに実績などございますか?
配信エラーについて、Perlのソース内にデバッグ行を入れて
どこでエラーになっているのか確認したところ、
ソース:
ext_lib/Net/SMTP/TLS.pm
関数:
sub starttls {
my $me = shift;
$me->_command(“STARTTLS”);
my ($num,$txt) = $me->_response();
if(not $num == 220){
croak “Invalid response for STARTTLS: $num $txt\n”;
}
if(not IO::Socket::SSL::socket_to_SSL($me->{sock},
# 1.71 ~ #############################
#SSL_version => “SSLv3 TLSv1”)){
SSL_version => “TLSv1”)){
#######################################
croak “Couldn’t start TLS: “.IO::Socket::SSL::errstr.”\n”;
}
$me->hello();
}
テスト配信時:
問題なくifを通過
本配信時:
2つ目のifにてエラー
この情報で何かわかりますでしょうか?
nakamura 様
詳細なご回答をいただきありがとうございます。
弊社開発環境では発生しないことから、個別の環境が
影響している可能性が高いかと思われますが、
> 本配信時:
> 2つ目のifにてエラー
この時表示されているエラーの内容をご提示いただければ幸いです。
またLinuxOSの種類、バージョンなども分かればご提示
頂ければと存じます。
いいえ、こちらこそ、お手数お掛けします。
1)LinuxはAWS/EC2のAmazonLinuxです。
Amazon Linux AMI release 2016.09
2)IO::Socket::SSL::errstrの内容
SSL connect attempt failed with unknown error error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
以上です。よろしくお願い致します。
nakamura 様
エラーメッセージ等のご提示ありがとうございます。
エラーメッセージより、StartTLS(SSL用のポートではなく、
通常の平分通信ポートを使い、データやり取り時に暗号化する
方式)のネゴシエーションを開始する際に、プロトコルがSSLv3
ではないというエラーが出ております。
理論上、MilkyStepでStartTLSを行うタイミングとしては、送信時
のSMTP接続時、およびエラーメールの受信を行うためのPOP
アクセス時のいずれかとなります。
また、配信処理を開始するまでの、テスト配信時と本配信時の
違いは、配信開始前にエラーメールの処理を行うか
(エラーメール受信用メールBOXにPOPアクセスするか)否か
という点になります。
以上より、配信開始前にエラーメールの処理を行うための
POPアクセス時に発生している可能性が高いかと思われます。
このPOPアクセス時に、アクセスした先のPOPサーバが、TLS1.0
に対応していないものと考えられます。(※)
下記のサイトなどをご参考に、ご利用中のPOPサーバにおいて、
TLS1.0を許可するよう設定いただくか、TLS1.0が利用可能な
POPサーバを使用しているメールアドレスをエラーメール受信
用アドレスに指定していただきますようお願いいたします。
※現在Poodleの脆弱性により、SSL3.0の使用は推奨されて
おらず、一般的にもTLS1.0以上のみを利用するような流れ
となっております。
参考サイト1
http://hatyuki.hatenablog.jp/entry/20080211/1202731324
参考サイト2(※POPサーバソフトがdevcotの場合のStartTLS設定)
http://server-setting.info/centos/dovecot-starttls-ssltls.html
その他の参考)
https://www.google.co.jp/search?q=+pop+starttls%E8%A8%AD%E5%AE%9A&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=-7f0V6yEIfOQ8Qfj_bPgCA
なおこれらのご対応が困難な場合、一時的な対応策としては、
ご提示いただいたソースの、
# 1.71 ~ #############################
#SSL_version => “SSLv3 TLSv1″)){
SSL_version => “TLSv1″)){
#######################################
の部分を
# 1.71 ~ #############################
SSL_version => “SSLv3 TLSv1″)){
#SSL_version => “TLSv1″)){
#######################################
としていただくことで、エラーが出なくなる可能性がありますが、
MilkyStepのバージョンアップ時に自動的に元の設定に戻りますので、
ご留意いただければと存じます。
なお恐れ入りますが、本件につきましては、上記よりお客様のサーバ個別の問題と考えられ、これ以上の弊社での原因調査
およびご対応は困難となりますため、これをもちまして弊社
からのコメントは閉めさせていただきます。
なにとぞご理解賜りますようお願い申し上げます。
詳細な回答をいただき感謝しております。
POPサーバの影響もあるのですね。
確かに、別なサーバで受信を
させようとしていました。
今後のバージョンアップもしていきたいので、
推奨されているサーバーに変更しようかと思います。
お手数お掛けしました。ありがとうございます。