php_PHP チュートリアルを使用してさまざまな形式でメールを送信する
この記事では、mail()関数の使い方、パイプの使い方、phpmailerクラスの使い方など、PHPでメールを送信する様々な方法を中心に紹介していますので、ぜひ参考にしてください
1. mail() 関数を使用する 多くのことは言う必要はありません。システムに組み込まれている SMTP システム (通常は sendmail) を使用して送信するだけです。これは各システムによって異なります。リファレンスマニュアルをご利用ください。 2. パイプライン形式を使用する 昨日、テストに成功し、ローカルの qmail を使用して電子メールを送信しました。 コードは以下のように表示されます: /* qmail を使用してメール関数を送信します */ 関数 send_check_mail($email, $subject,$uid,$buffer) { $command = "/var/qmail/bin/qmail-inject ".$email; //qmail プログラムのアドレス、$email は送信されるアドレスです。 $handle = Popen($command, "w"); //パイプを開きます http://www.cnblogs.com/roucheng/ if (!$handle) { false を返します。 } $from = "webmaster@unixsky.net"; fwrite($handle, "From: ".$from."\n"); // データをパイプに書き込みます fwrite($handle, "リターンパス: ".$from."\n"); fwrite($handle, "宛先: ".$uid."\n"); fwrite($handle, "件名: ".$subject."\n"); fwrite($handle, "Mime-Version: 1.0\n"); fwrite($handle, "Content-Type: text/html; charset=\"gb2312\"\n\n"); fwrite($handle, $buffer."\n"); pclose($handle); //パイプを閉じる true を返します。 } ------------------メールの送信テスト: //メールを送る $subject = "テストメール"; $uid = $_POST['uid'] //情報から $content = "".$u_email ."こんにちは!ありがとうございます、このメールはテスト用です!
"; //コンテンツ情報 $u_email = "hren@yahoo.com.cn"; //メールの送信先 if (send_check_mail($u_email, $subject, $uid, $content)) { echo "おめでとうございます! 投票メールがあなたのメールアドレスに送信されます!
メールを確認してください: ".$u_email."
< ;br>"。 $close; } それ以外 { echo "残念ながら、投票メールをメールボックスに送信できませんでした。もう一度試すか、開発スタッフに問い合わせてください。
" } もちろん、同じ方法を使用して sendmail プロセスを処理して電子メールを送信することもできます。 以下のコード例: コードは以下のように表示されます: 実際、このパイプライン メソッドは比較的低レベルであり、呼び出すプログラムの安定性に依存します。したがって、これは電子メールを送信するオプションの方法です。 3.phpmailerクラスを使用する オープンソースの電子メール クラスです。メイン サイト: http://phpmailer.sourceforge.net 内部には 2 つのファイルがあり、1 つは class.smtp.php、もう 1 つは class.phpmailer.php です。 また、公式サイトの利用方法は以下の通りです。 phpmailerを使用した例 1. 高度な例これは、マルチパート/代替サポートを使用して、MySQL データベースからバイナリ添付ファイルを含む複数の電子メール メッセージを送信する方法を示します。 コードは以下のように表示されます: require("class.phpmailer.php"); $mail = 新しいphpmailer(); $mail->From = "list@example.com"; $mail->FromName = "リストマネージャー"; $mail->Host = "smtp1.example.com;smtp2.example.com"; $mail->メーラー = "smtp"; @MYSQL_CONNECT("ローカルホスト","ルート","パスワード"); @mysql_select_db("my_company"); $query?=?SELECT フルネーム、メールアドレス、?hoto?ROM 従業員?HERE?d=$id"; $result??MYSQL_QUERY($query); while ($row = mysql_fetch_array ($result)) { // HTML本文 $body = "こんにちは $row["full_name"] ",
"; $body .= "あなたの個人の写真をこのメッセージに送信してください。
";
$body .= "敬具、
";
$body .= "phpmailer リストマネージャー";
// プレーンテキスト本文 (HTML を読めないメールクライアント用)
$text_body = "こんにちは " . $row["full_name"] ", \n\n";
$text_body .= "このメッセージにはあなたの個人的な写真が含まれています。\n\n";
$text_body .= "敬具、\n";
$text_body .= "phpmailer リストマネージャー";
$mail->本文 = $body;
$mail->AltBody = $text_body;
$mail->AddAddress($row["email"], $row["full_name"]);
$mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");
if(!$mail->Send())
echo "" . $row["email"] "
" への送信中にメール エラーが発生しました。
// 次のループのためにすべてのアドレスと添付ファイルをクリアします
$mail->ClearAddresses();
$mail->ClearAttachments();
}
2. phpmailer の拡張 継承を使用したクラスの拡張は、オブジェクト指向プログラミングの最も強力な機能の 1 つであり、元のクラスをハックすることなく、元のクラスに変更を加えることができます。例を示しました。
以下は、phpmailer クラスを拡張し、特定のサイトのデフォルトを設定するクラスです。
PHP インクルード ファイル: mail.inc.php
コードは以下のように表示されます:
require("class.phpmailer.php");
コードは以下のように表示されます:
class my_phpmailer extends phpmailer {
// すべての新しいオブジェクトにデフォルトの変数を設定します
var $From = "from@example.com";
var $FromName = "メーラー";
var $Host = "smtp1.example.com;smtp2.example.com";
var $Mailer = "smtp";
var $WordWrap = 75;
// デフォルトの error_handler を置き換えます
関数 error_handler($msg) {
print("私のサイトのエラー");
print("説明:");
printf("%s", $msg);
出口;
} }
// 追加の関数を作成します
関数 do_something($something) {
// 新しいコードをここに配置します
} }
}
ここにサイト内の通常の PHP ページがあり、上記のデフォルトがすべて設定されています。
通常のPHPファイル:mail_test.php
コードは以下のように表示されます。
require("mail.inc.php");
// 新しいクラスをインスタンス化します
$mail = 新しい my_phpmailer;
// あとは必要なものを追加するだけです
$mail->AddAddress("josh@example.com", "ジョシュ アダムス");
$mail->Subject = "これが件名です";
$mail->Body = "これはメッセージ本文です";
$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip"); // オプションの名前
if(!$mail->Send())
{
echo "メッセージの送信中にエラーが発生しました";
出口;
}
echo "メッセージは正常に送信されました";
4. PEAR::Net_SMTP コンポーネントを使用する
PEAR は本当に優れたものですが、多くの人はあまり使用しないかもしれませんが、少なくとも私は現在その DB クラスを使用しています。これは電子メールの送信に適しています。
Net_SMTP クラスが必要な場合は、http://pear.php.net にアクセスして、Net_SMTP クラスのユーザー マニュアルをダウンロードできます。
http://pear.php.net/manual/en/package.networking.net-smtp.php
私は上記のクラスを使用していますが、速度などの点でこれが最高ですが、操作にはいくつかの単純な SMTP プロトコルが必要です。
私の使用コード:
コードは以下のように表示されます。
//-----------------------------------------------
require_once 'Net/SMTP.php' // クラスライブラリをロードします。
$subject = "テストメール";
$uid = $_POST['uid'] //情報から
$content = "
ありがとうございます、このメールはテスト用です!
"; //コンテンツ情報 $u_email = "hren@yahoo.com.cn"; //メールの送信先 $smtp = 新しい Net_SMTP('192.168.0.1'); //smtp サーバー $smtp->connect(); //サーバーに接続します $smtp->helo('unixsky.net'); //HELO 情報をサーバーに送信します。 $smtp->mailFrom('hren@unixsky.net'); //送信者アドレス $smtp->rcptTo($u_email); //受信者のアドレス $date = date('r') //送信日を取得します。 $smtp->data("Date: $date\r\nFrom: vdddote@eyou.net\r\nTo: $u_email\r\nSubject: $subject\r\nContent-Type: text/html; charset=\ "gb2312\"\r\n\r\n$content\r\n"); //送信データを追加して送信 $smtp->disconnect(); //接続を閉じます

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
