ひさしぶりのメモエントリー。
お客様からデータベースに登録してあるメールアドレス(300件程度)に、メールの一斉送信ができるようにしてほしいと以前から言われていました。
こちらとしては、そのデータベースに登録してあるデータもあまり変動はないので、メールの一覧を取得し、メール一斉送信ソフトかメーリングリストを使えばいいのではと提案しつづけてきました。
そんなに費用もかからないですしね。
ただ、そのデータはそれぞれの顧客側から常に変更される場合があるので、それは難しいとのこと。
メールの一斉送信は、取り扱いを間違えれば、スパムメールになってしまいます。
送信元サーバーがブラックリストに乗っかる可能性もあり、あまり気乗りはしないのですが、どうしてもと言われるので、とりあえず作ることに。
phpを使う場合、メール送信はmail関数で簡単にできるのですが、ループさせて一度に大量のメールを送ると、かなりサーバーに負荷をかけてしまうので、pearのmail_queueというモジュールを使うことに。
今回はそのインストールと設定のメモです。
現在のサーバーのpearのバージョンが古かったのと、他のアカウントに影響があったりすると嫌だったので、このお客さんのアカウントに直接pearをインストールすることにしました。
そこで、今回はgo-pearというものを使って簡単にインストールすることができました。
【今回参照】http://masha.maakikaku.jp/2008/05/gopearpear.php
http://pear.php.net/go-pearにあるものをそのままコピーしてgo-pear.phpとして保存し、public_html以下にpearというディレクトリを作ってアップ。
(今回のバージョンは1.1.2)
それをブラウザからアクセスすると英語でいろいろと書いてある画面が出てくる。
とりあえずNext >>をクリック。
PEAR_Frontend_Gtk2とMDB2にとりあえずチェックを入れ、項目1.Installation prefix ($prefix)でpearをインストールする場所を確認。
その下に、さっき作ったpearというディレクトリの権限を777にしておいてね。とメッセージがでているので、これも忘れずにパーミッション変更しておく。
項目10のところで、インストールパッケージを管理するページのファイル名をどうするか書いてあるので、そのままでもいいですが、気になる人は変更してください。
それで、下のInstallボタンを押せば、そのまま自動でインストールしてくれます。
インストール後、パッケージを管理する画面がでてきます。
その上に赤で警告がでていたら、さっき作ったpearというディレクトリにパスワードかけておいてということなので、htaccessのbasic認証でもいいのでかけておく。
pearのインストールが終わったので、mail_queueのパッケージをインストールする。
その際に、これが必要とか言われるので、その通りに進めていく。
今回は、Mail、Mail-Mime、Mail-Queue、Net-Smtp、Net-Socket、MDB、DBを追加でいれた(ような気がする)
あと、メールの一斉送信のスクリプトに関しては下記参照。
http://pear.php.net/manual/ja/package.mail.mail-queue.mail-queue.tutorial.php
気を付ける点は、
config.phpのsmtp関連の設定で、outbound port 25 blockingがかかっているサーバーなら、
$mail_options['port'] = 587;
$mail_options['auth'] = true;
$mail_options['username'] = ‘[メールアカウント名]‘;
$mail_options['password'] = ‘[メールパスワード]‘;
にしておくこと。
あと、
Fatal error: Call to undefined method Mail_Queue_Error::getRecipient()
というエラーが出た場合、
$db_options['type'] = ‘mdb2′;
をmdbかdbにしてみる。
今回はmdbにしたら出なくなった。
詳しくは下記参照
http://pear.php.net/bugs/bug.php?id=14859&edit=3
取り急ぎ、メモでした。
none