原文: http://www.jbxue.com/php/25502.html
この記事では、PHP でメールを送信する 2 つの方法を紹介します。それらは、PHP の組み込みの mail() 関数を使用してメールを送信する方法です。 SMTP プロトコルをカプセル化した電子メール クラス 電子メールを送信するには、SMTP プロトコルでカプセル化された電子メール クラスを使用して電子メールを送信することをお勧めします。
PHPでメールを送信するには?さまざまな方法がありますが、最も一般的に使用されるのは SMTP プロトコルを使用して電子メールを送信することです。
特別な推奨事項: php メール コード コレクション
1. PHP の組み込み mail() 関数を使用します
コードをコピーします コード例:
$to = "test@163 .com"; //受信者
$subject = "テスト"; //件名
$message = "これはテストメールです!"; //テキスト
mail($to,$subject,$message);
レポート直接エラー:
警告: mail() [function.mail]: 「localhost」ポート 25 でメールサーバーに接続できませんでした。php.ini の「SMTP」および「smtp_port」設定を確認するか、D:/ の ini_set() を使用してください。 www /Zend/email/email.php の 10 行目
ローカル SMTP サーバーが必要です。コードは次のように変更されています:
コードをコピー コード例:
$to = "test@163.com";//受信者
$subject = "テスト";//メールの件名
$message = "これはテストメールです!";//メールの本文
ini_set('SMTP','smtp. 163.com ');//送信側 SMTP サーバー
ini_set('smtp_port',25);//送信側 SMTP サーバー ポート
ini_set('sendmail_from',"admin@163.com");//送信者のメール アドレス
mail($to,$subject,$message);
続行エラー:
警告: mail() [function.mail]: SMTP サーバーの応答: 553 認証です
required,smtp2,DNGowKD7v5BTDo9NnplVBA--.1171S2 1301220947 inD:/www/Zend/email/email.php on line 9
検証情報が必要です。どこで設定するのでしょうか?
mail() 関数を使用して電子メールを送信するには、SMTP 認証なしで電子メールを送信できるメール サーバーが必要です。しかし、現在のSMTPメールサーバーは基本的に認証が必要なため、これを使ってメールを送信したい場合は、認証を必要としないローカルSMTPサーバーを構築するしかありません。
結論: mail() 関数を使用して電子メールを送信するには、認証を必要としない SMTP サーバーが必要です。
2. SMTP プロトコルをカプセル化する電子メール クラスを使用する
電子メールの送信には SMTP プロトコルを使用することをお勧めします。
PEAR 拡張機能の Mail クラスを使用することをお勧めします。これには強力な機能があり、プレーン テキストと HTML 形式のメールをサポートでき、適切な設定により中国語の文字化けが発生しません。アタッチメントなどをサポートできます。
サーバー上で pear install Mail コマンドを使用すると、サーバーに簡単にインストールできます。十分なサーバー権限を持たない学生は、クラスの PHP ソース コードを直接ダウンロードしてインクルードすることもできます。
注: Mail クラスは Net/SMTP.php と Mail/mime.php に依存しているため、使用する場合は、これらを一緒にダウンロードして一緒にインクルードする必要があります。
詳しいインストール方法は公式サイト http://pear.php.net/package/Mail でご覧いただけます。
例、メールを送信する Mail クラスのメソッド。
コードをコピー コード例:
// Pear Mail 拡張機能
require_once('Mail.php');
require_once('Net/SMTP.php'); array();
$smtpinfo["host"] = "smtp.163.com";//SMTP サーバー
$smtpinfo["port"] = "25"; ] = "username@163.com"; //送信者の電子メール
$smtpinfo["password"] = "password";//送信者の電子メール パスワード
$smtpinfo["timeout"] = 10;//ネットワーク タイムアウト、秒
$smtpinfo["auth"] = true;//ログイン検証
//$smtpinfo["debug"] = true;//デバッグモード
// 受信者リスト
$mailAddr = array( 'receiver@163.com' );
//送信者表示情報
$from = "名前
// 受信者表示情報
//メールのタイトル
$subject = "これはテストメールです";
// メールの本文
$content = "好きなものを書いてください
";
$contentType = "text/html; charset=utf-8";
//改行記号 Linux: n Windows: rn
$crlf = "n"; $mime = new Mail_mime($crlf); >setHTMLBody($content);
$param['text_charset'] = 'utf-8';
$param['head_charset'] = 'utf -8';
$body = $mime->get($param);
$headers["From"] = $headers["To"] = $ to;
$headers["Subject"] = $subject;
$headers = $mime-> ;headers($headers); ::factory("smtp", $smtpinfo);
$mail = $smtp->send($mailAddr, $headers, $body);
if (PEAR) ::isError($mail)) {
//送信失敗
echo 'メール送信失敗: ' . $mail->getMessage()."n";
}
// 送信成功
echo "成功!n";
}
上記では、php でメールを送信する 2 つの方法を紹介しました。PHP は smtp を使用してメールを送信します。PHP チュートリアルに興味のある友人の参考になれば幸いです。