phpmailerはPHPプログラムからSMTPメールサーバー経由でメールを送信したい時に使えるPHPライブラリです。
https://github.com/Synchro/PHPMailer
PHPのアプリからメールを送信したい時は、いつもこのライブラリを使っています。
特徴
・WordpressやDrupalなどメージャーなオープンソースにも採用されている。
・ローカルではなく外部のSMTPサーバー経由でメール送信ができる。
・複数の宛先(To)、複数のカーボンコピー(Cc)、複数のブランク・カーボンコピー(Bcc)に送信することも想定したクラスライブラリになっている。
・AUTH-LOGIN、AUTH PLAIN、AUTH CRAM-MD5、SSL認証、TLS認証といった様々なSMTP認証方式に対応している。
コードサンプル
以前のバージョンでは
require_once(‘class.phpmailer.php’);
でライブラリをインクルードしていたのですが、最近のバージョンでは
require ‘PHPMailerAutoload.php';
でよくなったようです。
私が使ったことのある「さくらのメール」と「Gmail」の場合での違いが分かるようにコメントなどをつけたサンプル。
<?php require_once('class.phpmailer.php'); require_once('class.smtp.php'); /* SMTP接続 */ define('MAIL_HOST','example.sakura.ne.jp:587'); // さくらのメールの場合 //define('MAIL_HOST','smtp.gmail.com:465'); // Gmailの場合 define('MAIL_USERNAME','user@example.com'); define('MAIL_PASSWORD','xxxxxxxxxxx'); define('MAIL_FROM','user@example.com'); define('MAIL_CHARSET','iso-2022-jp'); define('MAIL_ENCODING','7bit'); define('MAIL_PHP_LANGUAGE','japanese'); define('MAIL_PHP_INTERNAL_ENCODING','UTF-8'); define('MAIL_FROM_NAME','送信元の表示名'); mb_language(MAIL_PHP_LANGUAGE); mb_internal_encoding(MAIL_PHP_INTERNAL_ENCODING); $mail = new PHPMailer(); $mail->CharSet = MAIL_CHARSET; $mail->Encoding = MAIL_ENCODING; //SMTP接続 $mail->IsSMTP(); $mail->SMTPAuth = TRUE; //$mail->SMTPSecure = 'ssl'; // Gmailの場合はこれが必要! $mail->Host = MAIL_HOST; //メールサーバー $mail->Username = MAIL_USERNAME; //アカウント名 $mail->Password = TMMAIL_PASSWORD; //アカウントのパスワード $mail->From = MAIL_FROM; //差出人(From)をセット $mail->FromName = mb_encode_mimeheader(MAIL_FROM_NAME); //差出人の名前 $mail->ClearAddresses(); // 宛先アドレスを前に指定した場合はクリア $mail->AddAddress(‘to1@sample.com’); //宛先アドレス1。 $mail->AddAddress(‘to2@sample.com’); //宛先アドレス2。 $mail->ClearCCs(); //CCアドレスを前に指定した場合はクリア $mail->AddCC(‘cc1@sample.com’); //CCアドレス1。 $mail->AddCC(‘cc2@sample.com’); //CCアドレス2。 $mail->ClearBCCs(); //BCCアドレスを前に指定した場合はクリア $mail->AddBcc(‘bcc1@sample.com’); //Bccアドレス1。 $mail->AddBcc(‘bcc2@sample.com’); //Bccアドレス2。 $mail->Subject = mb_encode_mimeheader('タイトル'); //メールサブジェクトの指定 // 本文を指定 $mail->Body = mb_convert_encoding('本文’, 'JIS', TMMAIL_PHP_INTERNAL_ENCODING); // 送信 $mail->Send(); ?>
コメントを残す