2009年7月13日月曜日

phpでgmailのサーバ(smtp.gmail.com)を利用して、メールを送信する方法。

gmailのsmtpサーバー(smtp.gmail.com)を利用してmailを送信する方法。文字化けするのでutf8にする必要がある。


require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();

$to = "送信先のアドレス";
$toName = "送信先の名前";
$subject = "phpによるmail送信";
$message = "成功";
$user = "googleアカウント(gmailのアドレス)";
$pass = "アカウントのパスワード";

$config = array('auth' => 'login', 'ssl' => 'ssl', 'username' => $user, 'password' => $pass);
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail('UTF-8');
$mail->setFrom($user, 'dumsco');
$mail->addTo($to, $toName);
$mail->setSubject($subject);
$mail->setBodyHtml($message);

$mail->send($transport);



追記
・docomoとsoftbank当てにメールを送る方法。
 ドコモとソフトバンクは、UTF-8が使えるため、特にコードを書き換える必要無し。

$config = array('auth' => 'login', 'ssl' => 'ssl', 'username' => $user, 'password' => $pass);
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail('UTF-8');
$mail->setFrom($user, $fromName);
$mail->addTo($to, $toName);
$mail->setSubject($subject);
$mail->setBodyHtml($message);
$mail->send($transport);

・auにメールを送る方法。
auはutf8が使えないのでShift_JISに文字コードを変換した。しかし、本文が見れず、しかたないのでtextの形式で送った。

$config = array('auth' => 'login', 'ssl' => 'ssl', 'username' => $user, 'password' => $pass);
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$fromName = mb_convert_encoding($fromName, 'Shift_JIS' ,'UTF-8');
$user = mb_convert_encoding($user, 'Shift_JIS' ,'UTF-8');
$toName = mb_convert_encoding($toName, 'Shift_JIS' ,'UTF-8');
$subject = mb_convert_encoding($subject, 'Shift_JIS' ,'UTF-8');
$message = mb_convert_encoding($message, 'Shift_JIS' ,'UTF-8');
$mail = new Zend_Mail('Shift_JIS');
$mail->setFrom($user, $fromName);
$mail->addTo($to, $toName);
$mail->setSubject($subject);
$mail->setBodyText($message);
$mail->send($transport);

0 件のコメント:

コメントを投稿