MilkyStep Official Community

メルマガ・ステップメール配信ソフトMilkyStep利用者のコミュニティです。

SMTP送信にて「即時配信」「予約配信」が「不測のエラー」となる

Version 1.87 導入後、localhostからは標準メルマガは送信できたのですが、

送信設定「SMTPサーバを個別に指定する」にして、
「即時配信」や「予約配信」を行うと送信されず、
「配信履歴一覧」を確認すると「不測のエラー」となります。

ただし、

1)送信設定画面のSMTP指定で、
「設定保存時に送信テストを行う」にチェックを入れて
「保存」ボタンをクリックすると、正しく送信されます。

ちなみに、以下の場所でも、「設定保存前に送信テストを行う」にて
問題なく送信されます。

共通設定>システム情報>SMTPサーバ
共通設定>SMTP設定

2)記事作成画面から「テスト配信」も問題なく送信できます。

「不測のエラー」の原因がわからず困っているですが、
詳細なエラー情報など、どのようにして調べたらよろしいでしょうか?

関係ないかもしれませんが、CRONは次のように問題なく動いているようです。
OK! action.cgi succeeded in creating a process. (action.cgiはプロセスの生成に成功しました。)

金, 9月 30 2016 » メール送受信関連, 初期設定関連

6 Responses

  1. Igreks.Inc 10月 4 2016 @ 4:58 PM

    平素は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側)で判断・制御することは困難と
    なります。

  2. nakamura 10月 5 2016 @ 8:06 AM

    ご回答いただき、ありがとうございます。

    「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にてエラー

    この情報で何かわかりますでしょうか?

  3. Igreks.Inc 10月 5 2016 @ 10:27 AM

    nakamura 様

    詳細なご回答をいただきありがとうございます。

    弊社開発環境では発生しないことから、個別の環境が
    影響している可能性が高いかと思われますが、

    > 本配信時:
    > 2つ目のifにてエラー

    この時表示されているエラーの内容をご提示いただければ幸いです。

    またLinuxOSの種類、バージョンなども分かればご提示
    頂ければと存じます。

  4. nakamura 10月 5 2016 @ 12:07 PM

    いいえ、こちらこそ、お手数お掛けします。

    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

    以上です。よろしくお願い致します。

  5. Igreks.Inc 10月 5 2016 @ 5:41 PM

    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のバージョンアップ時に自動的に元の設定に戻りますので、
    ご留意いただければと存じます。

    なお恐れ入りますが、本件につきましては、上記よりお客様のサーバ個別の問題と考えられ、これ以上の弊社での原因調査
    およびご対応は困難となりますため、これをもちまして弊社
    からのコメントは閉めさせていただきます。
    なにとぞご理解賜りますようお願い申し上げます。

  6. nakamura 10月 6 2016 @ 8:36 AM

    詳細な回答をいただき感謝しております。

    POPサーバの影響もあるのですね。
    確かに、別なサーバで受信を
    させようとしていました。

    今後のバージョンアップもしていきたいので、
    推奨されているサーバーに変更しようかと思います。

    お手数お掛けしました。ありがとうございます。

Login