ホームページ バックエンド開発 PHPチュートリアル PHPでメール送信を実装するというアイデア

PHPでメール送信を実装するというアイデア

Jun 06, 2018 pm 04:51 PM
phpでメールを送信

この記事では主にphpでメール送信を実装するアイデアを紹介します。興味のある方はぜひ参考にしてください。

この記事の主な内容は、PHP を使用してメールを送信することであり、次の 2 つの方法にまとめられています:

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 でメールサーバーに接続できませんでした。php.ini の「SMTP」および「smtp_port」設定を確認するか、D の ini_set() を使用してください。 /www/Zend/ email/email.php 行 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 on line 9

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

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

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

この方法は、特にサーバーを持たず、インターネットから仮想ホストを購入する大多数の学生にとって比較的一般的です。最初の方法は非現実的です。そのため、彼らは依然として SMTP 契約を使用して電子メールを送信しています。

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

ただし、 拡張機能の Mail クラス を使用することをお勧めします。 はプレーン テキストでの電子メールをサポートし、フィールドごとに HTML エンコーディングを設定でき、正しい設定により中国語の文字化けが発生しません。文字; はい 添付ファイルなどをサポートします。

サーバー上で

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

注: Mail クラスは Net/SMTP.php と Mail/mime.php に依存しており、使用する場合は一緒にダウンロードしてインクルードする必要があります。

Mail クラスで電子メールを送信する方法の例を示します。インターネット上の他の SMTP メール クラスの使用法も同様です。

<?php 
 
// Pear Mail 扩展 
require_once(&#39;Mail.php&#39;); 
require_once(&#39;Mail/mime.php&#39;); 
require_once(&#39;Net/SMTP.php&#39;); 
 
$smtpinfo = array(); 
$smtpinfo["host"] = "smtp.163.com";//SMTP服务器 
$smtpinfo["port"] = "25"; //SMTP服务器端口 
$smtpinfo["username"] = "username@163.com"; //发件人邮箱 
$smtpinfo["password"] = "password";//发件人邮箱密码 
$smtpinfo["timeout"] = 10;//网络超时时间,秒 
$smtpinfo["auth"] = true;//登录验证 
//$smtpinfo["debug"] = true;//调试模式 
 
// 收件人列表 
$mailAddr = array(&#39;receiver@163.com&#39;); 
 
// 发件人显示信息 
$from = "Name <username@163.com>"; 
 
// 收件人显示信息 
$to = implode(&#39;,&#39;,$mailAddr); 
 
// 邮件标题 
$subject = "这是一封测试邮件"; 
 
// 邮件正文 
$content = "<h3>随便写点什么</h3>"; 
 
// 邮件正文类型,格式和编码 
$contentType = "text/html; charset=utf-8"; 
 
//换行符号 Linux: \n Windows: \r\n 
$crlf = "\n"; 
$mime = new Mail_mime($crlf); 
$mime->setHTMLBody($content); 
 
$param[&#39;text_charset&#39;] = &#39;utf-8&#39;; 
$param[&#39;html_charset&#39;] = &#39;utf-8&#39;; 
$param[&#39;head_charset&#39;] = &#39;utf-8&#39;; 
$body = $mime->get($param); 
 
$headers = array(); 
$headers["From"] = $from; 
$headers["To"] = $to; 
$headers["Subject"] = $subject; 
$headers["Content-Type"] = $contentType; 
$headers = $mime->headers($headers); 
 
$smtp =& Mail::factory("smtp", $smtpinfo); 
 
 
$mail = $smtp->send($mailAddr, $headers, $body); 
$smtp->disconnect(); 
 
if (PEAR::isError($mail)) { 
  //发送失败 
  echo &#39;Email sending failed: &#39; . $mail->getMessage()."\n"; 
} 
else{ 
  //发送成功 
  echo "success!\n"; 
}
ログイン後にコピー
インターネット上にある SMTP クラスが高度にカプセル化されている場合。上記の方が簡単ですが、使用方法は比較的似ています。

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

要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。

関連する推奨事項:

ファイルをダウンロードするためのPHP関数の例の詳細な説明

PHPがQRCODEに基づいてカラーQRコードを生成する方法

PHPはログイン確認コード関数と呼び出しメソッドを実装します

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

See all articles