ホームページ >バックエンド開発 >PHPチュートリアル >PHPでメールを送信する
テストコード
<?phpheader('Content-Type: text/xml; charset=utf-8');require_once('./PHPMailer-master/class.phpmailer.php');function sendMail() { $mail = new PHPMailer(); //采用SMTP发送邮件 $mail->IsSMTP(); $mail->SMTPDebug = 0; $mail->SMTPAuth = true; $mail->SMTPSecure = "tls"; $mail->CharSet = "utf-8"; $mail->Encoding = "base64"; $mail->MessageID = time(); $mail->Host = 'email.163.com'; $mail->Port = 587; $mail->Username = 'yourname'; $mail->Password = 'password'; $mail->From = 'yourname@163.com'; //发件人 $mail->FromName = 'some name'; //收件人邮件组 $mail->AddAddress('dest@163.com', 'his name'); $body = "Hi all:<br/> this is a test mail<br/> <br/>"; $mail->Subject = 'a subject '; $mail->MsgHTML($body); $mail->Send();}sendMail();?>
これを使ってメールを送信したところ、最初は送信できませんでしたが、デバッグスイッチ $mail->SMTPDebug = 2;
サーバー名が間違っていることがわかり、その後、このクラスファイルを調べに行きました。 class.phpmailer.php
serverHostname 関数で、_SERVER グローバル変数を出力すると、ホスト名が変数 _SERVER['SERVERNAME'] ではなく、_SERVER['HOSTNAME] に配置されていることがわかります。 ' ] の場合、解決策は、SERVERNAME を HOSTNAME に変更するか、プログラム内の $this->Hostname 変数に値を割り当てることです。状況に応じて自分で変更してください。 クラス内で直接変更しました。