低音好きの日々

眠い時に書きたい

Mac OS X,php,gmailでメール送信

PEARでmail送信のためのライブラリをインストールします。


sudo pear install -a Mail
sudo pear install -a Mail_mimeDecode
sudo pear install -a Net_SMTP

参考
http://freefielder.jp/blog/2010/02/php-pearmail.html
http://okwave.jp/qa/q2847251.html
http://pear.php.net/package/Net_SMTP/

その後
http://d.hatena.ne.jp/killswitch5375/20090201/1233444748
を元に


'tls://smtp.gmail.com',
'port' => 465,
'auth' => true,
'debug' => false,
'username' => 'gmail_account@gmail.com',
//ユーザー名と@gmail.comも要りそうな気がするのだが?
'password' => 'gmail_password'
);
$headers =
array (
'To' => 'sendto@ezweb.ne.jp',
'From' => 'gmail_account@gmail.com',
'Subject' => mb_encode_mimeheader("さぶじぇくと") // エンコード
);

$mailto = 'sendto@ezweb.ne.jp';

$body = "おはよう。朝御飯";
$body = mb_convert_encoding( $body, "ISO-2022-JP", "auto" ); // エンコード
$smtp = Mail::factory( 'smtp', $params );
$send = $smtp->send( $mailto, $headers, $body );
if (PEAR::isError($send)) { print($send->getMessage());}

?>


のコードを実行しましたが、

Failed to connect to tls://smtp.gmail.com:465
[SMTP: Failed to connect socket:
Unable to find the socket transport "tls" -
did you forget to enable it when you configured PHP?
(code: -1, response: )]

とブラウザに表示されます。
phpにopenssl対応が入っていない?

php -m

を実行して、[PHP Modules]にopensslが入っていない!ビルドし直しが必要なのか!?あーと思ったが、

sudo port install php5-openssl

実行後、webサーバー再起動でopenssl対応しました。というわけでメール送信できたけど、タイトルだけ文字化けするのでまだ要調査。port便利だな…