Help us understand the problem. What is going on with this article?

EC-CUBE 2系から SES でメールを送信する

More than 1 year has passed since last update.

2010年に EC-CUBE 2系をベースに構築したシステムがあり、さくらの専用サーバ(ベーシック)上で稼働している。

システムも、サーバもさすがに老朽化が進んできていて、メンテナンスを継続できないので、新規システムをフルスクラッチで制作し、AWS 上で稼働させることにしたい。

ただ、システムを一から作り直すには時間が足りないので、まず現行システムをそのまま AWS に移行させる。そこまでが第1フェイズ。

AWS 上での安定運転を確認してから、おもむろにシステム制作に着手し、リリースする。これが第2フェイズ。

第1フェイズでは、現行システムが1台の物理サーバで兼務している各機能(ただしストレージ用途にはもう1台、別の物理サーバがある)を、AWS のそれぞれのサービスに分担させる(もちろん最小限の改修は必要)。

  • EC2 - Web/APサーバ
  • RDS - データベース
  • S3 - ストレージ
  • SES - メールサーバ

しかし、SES で数時間ハマった。

EC-CUBE 2系では、メール送信で内部的に PEAR を使用している。いろいろ設定を変えてやってみたが、これがうまく SES と連携してメールを送信することができない。

最終的になんとかメール送信までこぎつけたが、その設定とカスタマイズは次のようにした。

  • 管理画面にログインし、
    • SMTP_HOST を "tls://email-smtp.us-west-2.amazonaws.com" に設定
    • SMTP_PORT を "465" に設定
  • /data/class/SC_SendMail.php を以下のように変更
/data/class/SC_SendMail.php
function getBackendParams($backend) {

  switch ($backend) {

    /* 省略 */

    case "smtp":
    default:
      $arrParams = array(
        'host'     => $this->host,
        'port'     => $this->port,
        'auth'     => TRUE,          // 追加
        'username' => SES_USER,      // 追加
        'password' => SES_PASSWORD   // 追加
      );
      break;
  }

  return $arrParams;
}

SMTP_HOST を "tls://" で始めるのがポイント。これがないとどうやっても STARTTLS コマンドを送出できない。また、ポート番号は 465 しか効かなかった。587 でがんばっても、たぶん徒労。あ、あと管理画面からパラメータを設定するときは、両端の " を忘れないようにする。

EC-CUBE 2系から SES を使用してメールを送信しよう…などと考える人はまずいないと思うけど、万が一にもありえないとは言い切れないので、参考のために記録を残しておく。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away