AWS x Eccube2.13. x メール遅延 (PHP5.6系の罠)

Eccubeから注文などのメールが、約10分遅延する問題があり、
まだ、ピークではないので、やり過ごしていたが、

ここ1ヶ月ほど悩んだことが、やっと解決された!!

***

原因は、PHP 5.6 / PEAR::SMTPにあり!

5.6から、587ポートに接続のTLSは、認証が必要になっています。

function enableCrypto($enabled, $type){
  if (version_compare(phpversion(), "5.1.0", ">=")) {
    if (!is_resource($this->fp)) {
      return $this->raiseError('not connected');
    }
    // ▼ この行を追加
    stream_context_set_option($this->fp, 'ssl', 'verify_peer_name', false);

    return @stream_socket_enable_crypto($this->fp, $enabled, $type);// 問題の場所
  } else {
    $msg = 'Net_Socket::enableCrypto() requires php version >= 5.1.0';
    return $this->raiseError($msg);
  }
}

PHP5.6でSMTP送れない件 – ド忘れ防止雑記帳より

前バージョンのPEAR::SMTPにはついていたコードなんでしょうか?
7行目のコードを足せば、動くようになります!


AWS SES の設定や制限解放

SESの設定は、こちら。

あとは、制限解放依頼。

Amazon SES rejected

初期は、サンドボックスになっているので、登録したメアドにしか、
メールが送れないので、その制限を解除↓

解除リクエスト先 >?http://aws.amazon.com/ses/extendedaccessrequest/

参考 >?Amazon SESの送信制限を解除する(SandBoxの外へ移動する)

※スパムメール送る送信元としてSESが利用されていることが、多いらしいので、サイトがある程度完成してから、申請しました。

AWS SES 送信テストサンプルコード

PHP で Amazon SES の SMTP インターフェイスから E メールを送信する

の通り、USER / PASSWORDを指定するだけなんですが、
PEARが入ってないと、当然動きません。

※USER / PASSWORD は、SESのメール設定時にIAMで取得する乱数文字
※HOSTは、今回オレゴンを使ったので、

define('HOST', 'email-smtp.us-west-2.amazonaws.com');

また、AWS(Amazon AMI)の場合、

include_path = .:/usr/share/pear:/usr/share/php

となっているので、インストールするか、
ECCUBE内にもある(data/module)ので、これを追加してやる。

この場合、ECCUBE のルートにあるdefine.phpで書かれているとおり、

/** data/module 以下の PEAR ライブラリを優先的に使用する */
set_include_path(realpath(dirname(__FILE__) . '/' . HTML2DATA_DIR . 'module') . PATH_SEPARATOR . get_include_path());

をECCUBE固有の固定値を修正し、
サンプルコードの上の方に書き足せば、動きます。
(直接、module/Mail.phpをincludeしようとしたりして、罠にハマったのでw)

ECCUBE 2.13系?MAIL_BACKEND >> SMTP

 define('MAIL_BACKEND', 'mail');

config.phpのこの行を、mail >> smtpに変え、host / port / user / passwordを適切に変えるだけ。
「ECCUBE SMTP」で検索すると、module / Mail / smtp.phpも書き直せ
と出てきますが、そんな必要はありません。!

古いバージョンでは、書き直しが必要だったかもしれませんが、
config.phpの変更だけで、おk。

呼び出し元(module/mail.php)のソースを読む限り、

Mail->factory('smtp', $param)

このコードで、上記configで指定されたsmtpの値
=$paramが渡され、引き継がれています。


また、まとまってない文章っぽいですが、お察しくださいw

実際に注文してみたところ、全く遅延はありませんでした!
MAIL_BACKENDのmail / PHP のメールは、規制がかかっているので、
SES取得、制限開放して、

MAIL_BACKEND = SMTPで運用すると、幸せになれます!

関連

-

U-mobile MAX25G * 速度制限とテザリング

一ヶ月、25G使える U-mobile MAX25Gが10月からラインナップするらしく、
Umobileのサイトを見てみると、LTE使い放題が廃止とあった。

LTE使い放題の新規受付中止

解約せずに、持っておいた方が得なのかと思ったら、

新しいプランが出来ている!!

それが、

  • U-mobile Premium
  • U-mobile MAX 25GB

無制限と宣伝している「U-mobile Premium」

IIJ回線で、速度改善!
http://umobile.jp/premium/

***

「これまでのLTE使い放題と、何が違うのか?」
サポートセンターに問合せしてみました。

まず、PREMIUMは、従来プランとは、回線が異なり「IIJ」を使っているという点。

U-mobile Premiumと従来プランの違い

また、LTE使い放題では、Youtubeすらまともに再生できないぐらい遅かったのですが、
U-mobile Premiumは、従来プランとは異なり、設備・帯域制限の設計が違うようですので、

Umobile Premium 動画は早い

回線設備・設計がそのものが違うと言っているので、
ランチタイム以外は概ね快適ということです。

が、

現在仕様している「U-mobileのLTE使い放題プラン」から、
どのように、申込みをするのか、聞いてみたところ、

Umobile Premium LTE使い放題を一度解約して、転出が必要

そもそもSIMが異なるので、
LTE使い放題を一度解約・MNPでの転出費用と、また初期費用がかかるようです。

つまり、6000円の出費・・・

 

他社からMNPした場合も必要な出費ですが、
同じU-mobile間で費用が発生してしまうのは、ちょっと納得ができませんが、
LCC(ロー・コスト・キャリア)なので、仕方ない、というところでしょうか・・・

U-mobile Premium 速度 評価

「IIJの回線を使っているため、高速だ」との宣伝文句でしたが、
現在の評価を調べてみると、

「遅くて使い物にならない」という投稿が多いようです。

「LTE使い放題」の時も、3日で2GB程度を使用すると、
翌日から、200kbpsの速度制限がかかり、facebookすらまともに見れないぐらい、
まともに使うことはできませんでしたが、

残念ながら、U-mobile Premium プランでも、
同様に3日で2GB程度で速度制限
がかかってしまうようです。

中には、「1ヶ月で40GB近く使えた」という、レビューもありましたが、
1日の制限はないため、1日で5GBを使い、翌3日間は制限がかかった状態で、
解除されたら、また5GBなどを使えば、
上記のように、40GBも使うことが可能なようです。

しかし、次の日だって、たくさん使いたいのに、
速度制限がついて回るのであれば、
旧プランのLTE使い放題と変わらないため、
速度制限を気にせず使うとなると、今回の移転の目的にあいません。

 

実際に使ってみて、遅いからと、12ヶ月以内解約すると、
残月数×1,000円が解約事務手数料が発生するため、
気安く乗り換えも難しい状況です。

***

やはり、本命はU-mobile MAX 25GBか?

容量 25GB まで通信制限なしの新たなプラン、「U-mobile MAX 25GB」を月額 2,380 円(データ通信のみ)で提供されます。

1日の仕様上限がなく、速度制限がないのであれば、
後先考えず、1日25GBでも使えるなら、言うことありません!

 

必要に迫られ、通信量が増える日ってあるわけで、
例えば、テザリングで仕事をしていると、1日1~2ギガぐらいは軽く行ってしまいます。

LTE使い放題では、そのような状況で、翌日速度制限がかかってしまい、
それに備え、DMMのシェアプラン10GBを兼用していたのですが、
1つのSIM契約で通信量が賄(まかな)えるのであれば、
言うことはありません!

 

実際に、U-mobile MAX 25GBを使ってみた評価

ホームページの更新などを、カフェでiPhoneを使いテザリングしてみました。

正直なところ、ページが表示されるまで、初速が遅いです。
特に、画像はさらに後から表示されるので、余計に遅いと感じると思います。

ただし、これは、自宅の光と比較した場合です。

 

docomoなどと比較すると、やはり遅いかもしれません。
格安SIMの中でも速いと言われている、DMMモバイルと比べてみると、

体感的に、DMMの方が早いです。

 

しかし、値段比較をした場合、

U-mobie 25GB : DMM 20GB = 2380 : 3980円

と、その差1.5倍以上!

 

 

PS.

Premiumと同じくIIJを使っているのかと思いきや、
U-mobileと、b-mobile(MVNOの老舗/日本通信)が業務提携したため、
そちらの回線を使ってたプランとなり、
こちらも、同じU-mobileでありながら、MNPによる乗り換え必要が必要になります。

b-mobileからも、同じ25GBプランが用意されています。

【送料無料】日本通信 BM-25GDM b-mobile SIM 25GB定額 データ専用 マイクロSIMパッケージ

 

-