ホームページ > バックエンド開発 > PHPチュートリアル > PHP メールを送信する 2 つの方法

PHP メールを送信する 2 つの方法

小云云
リリース: 2023-03-17 12:30:01
オリジナル
35023 人が閲覧しました

多くのプログラマーは、PHP を使用してメールを送信する際に、いくつかの問題に遭遇するでしょう。この記事は、PHP でのメール送信の実装に関するアイデアに基づいてまとめられたものです。さまざまな問題が発生したときに、提供されるさまざまな解決策を参照できます。

1. PHP の組み込み mail() 関数を使用します

<?php 
$to = "test@163.com"; //收件人 
$subject = "Test"; //主题 
$message = "This is a test mail!"; //正文 
mail($to,$subject,$message);
ログイン後にコピー

結果は次のようにエラーが直接報告されます:

警告: mail() [function.mail]: に失敗しました 「localhost」ポート 25 でメールサーバーに接続し、「SMTP」と「smtp_port」を確認します。 php.ini で設定するか、オンラインで D:/www/Zend/email/email.php の ini_set() を使用します 10

分析理由: ローカル SMTP サーバーが必要で、コードが変更されました:

<?php 
$to = "test@163.com";//收件人 
$subject = "Test";//邮件主题 
$message = "This is a test mail!";//邮件正文 
ini_set(&#39;SMTP&#39;,&#39;smtp.163.com&#39;);//发件SMTP服务器 
ini_set(&#39;smtp_port&#39;,25);//发件SMTP服务器端口 
ini_set(&#39;sendmail_from&#39;,"admin@163.com");//发件人邮箱 
mail($to,$subject,$message);
ログイン後にコピー

結果はまだ間違っています:

警告: mail() [function.mail]: SMTP サーバー 応答: 553 認証が必要です、smtp2、DNGowKD7v5BTDo9NnplVBA--.1171S2 1301220947 inD:/www/Zend/email/email.php 9 行目

分析理由: 検証情報が必要ですが、検証情報をどのように記述するか?どこで設定するのでしょうか?これらの質問についていくつかの技術記事を参照した結果、mail() 関数を使用して電子メールを送信するには、SMTP 認証なしでレターを送信できるメール サーバーが必要であるという結論に達しました。しかし、現在のSMTPメールサーバーは基本的に認証が必要なため、これを使ってメールを送信したい場合は、認証を必要としないローカルSMTPサーバーを構築するしかありません。セットアップ方法: Windows に付属の IIS を使用するか、インターネットから他の SMTP サーバー ソフトウェアをダウンロードします。

結論: mail() 関数を使用して電子メールを送信するには、認証を必要としない SMTP サーバーが必要です。この場合、設定作業はもう少し多くなりますが、数行のコードを書くだけで簡単に使用できます。

2. SMTP プロトコルをカプセル化するメール クラスを使用する

この方法は、特にサーバーを持たず、インターネットから仮想ホストを購入する大多数の学生にとっては比較的一般的です。そのため、最初の方法は非現実的です。 SMTP プロトコル自体はまだ使用されています。

ただし、この作業を完了するには、SMTP プロトコルをある程度理解する必要があります。すべてを自分で行いたい学生は自分でプロトコルを作成し、独自のものとして使用したい学生はインターネットからダウンロードできます。 。 沢山あります。

ただし、PEAR 拡張機能の Mail クラスを使用することをお勧めします。これには強力な機能があり、プレーン テキストと HTML 形式のメールをサポートでき、適切な設定により中国語の文字化けが発生しません。アタッチメントなどをサポートできます。

サーバー上でpear install Mailを使用できます このコマンドは簡単にインストールできます。十分なサーバー権限を持たない学生は、クラスの PHP ソース コードを直接ダウンロードしてインクルードすることもできます。

注: Mail クラスは Net/SMTP.php および Mail/mime.php に依存します。 を一緒にダウンロードし、使用するときに一緒に含めます。

Mail クラスで電子メールを送信する方法の例を示します。インターネット上の他の SMTP メール クラスの使用法も同様です。インターネット上で SMTP クラスを見つけた場合は、以下を参照してください。は高度にカプセル化されているため、上記よりも簡単に使用できます。ただし、使用方法は比較的似ています。

結論: この方法でメールを送信するためにソフトウェアをインストールする必要はありません。必要なのは、PHP クラスを追加してさらに数行の設定コードを記述するだけです。また、サンプルコードはインターネット上に多数公開されており、多くの場合、それらをコピーしていくつかのパラメータを変更するだけで使用できるため、この方法を使用することをお勧めします。

どんな種類の問題に遭遇したとしても、最も重要なことは問題を解決するためのアイデアを持つことです。この記事が皆さんにインスピレーションをもたらすことを願っています。

関連する推奨事項:

強力な PHP メール クラス

シンプルな PHP メール クラス

PHP メールの問題

以上がPHP メールを送信する 2 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート