ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して SMTP 経由でメールを送信するための包括的なガイド

PHP を使用して SMTP 経由でメールを送信するための包括的なガイド

WBOY
WBOYオリジナル
2023-05-27 10:10:352702ブラウズ

インターネットの発展に伴い、電子メールは重要なコミュニケーション手段として人々の日常生活に欠かせないものになりました。コードから電子メールを送信することは、Web 開発者にとって一般的なタスクです。 PHP には SMTP (Simple Mail Transfer Protocol) 経由でメールを送信する機能があり、この記事ではその包括的なガイドを提供します。

1. SMTP の概要

SMTP は、サーバーまたはクライアントと電子メールを送受信するための標準プロトコルであり、テキスト転送プロトコルです。通常、SMTP サーバーは電子メールの送信に使用され、POP (ポスト オフィス プロトコル) サーバーまたは IMAP (インターネット メッセージ アクセス プロトコル) サーバーは電子メールの受信に使用されます。

SMTP の主な機能は、メールが宛先に到達するまで、あるサーバーから次のサーバーにメールを配信しようとすることです。 SMTP クライアントがメールを送信する場合、サーバーに接続し、メール データをサーバーに送信します。その後、サーバーは、メールが受信者の SMTP サーバーに到達するまで、次のサーバーへのメールの配信を試みます。 SMTP サーバーは通信にポート番号 25 を使用します。

2. PHP メール送信機能

PHP で SMTP を使用してメールを送信するには、PHP に組み込まれているメール送信機能を使用する必要があります。これらの関数は次のとおりです。

  1. mail() 関数

PHP で電子メールを送信する最も簡単な方法は、mail() 関数を使用することです。この関数は、PHP 構成の「sendmail」プログラムを通じてメールを送信します。この関数には次のパラメータがあります。

  • $to - 受信者の電子メール アドレス
  • $subject - メッセージの件名
  • $message - メッセージ本文
  • $headers - 電子メール ヘッダー

サンプル コード:

$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a test email.";
$headers = "From: sender@example.com";

mail($to, $subject, $message, $headers);
  1. smtp_mail() function

smtp_mail() 関数は self - 定義された PHP 関数は、SMTP プロトコルを使用して電子メールを送信できます。この関数には次のパラメータがあります。

  • $to - 受信者の電子メール アドレス
  • $subject - メッセージの件名
  • $message - メッセージ本文
  • $headers - 電子メール ヘッダー
  • $smtp_username - SMTP サーバーのユーザー名
  • $smtp_password - SMTP サーバーのパスワード
  • $smtp_host -SMTP サーバーのホスト名
  • $smtp_port - SMTP サーバーのポート番号

サンプル コード:

$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a test email.";
$headers = "From: sender@example.com";
$smtp_username = "smtp_username";
$smtp_password = "smtp_password";
$smtp_host = "smtp.example.com";
$smtp_port = 587;

smtp_mail($to, $subject, $message, $headers, $smtp_username, $smtp_password, $smtp_host, $smtp_port);

3. SMTP サーバーの設定

SMTP を使用して電子メールを送信する前に、 SMTPサーバーパラメータ。 SMTP サーバーのホスト名、ポート番号、ユーザー名とパスワード、その他の情報を知る必要があります。

SMTP サーバーのホスト名は、電子メール サービス プロバイダーによって提供されるドメイン名または IP アドレスです。 SMTP サーバーのポート番号は通常 25 ですが、他のポート番号でも構いません。 SMTP サーバーが認証を必要とする場合は、ユーザー名とパスワードを使用して認証する必要があります。認証が不要な場合は空白のままで大丈夫です。

4. PHPMailer ライブラリを使用して電子メールを送信する

PHPMailer は、電子メール送信用の人気のある PHP クラス ライブラリです。 SMTP 認証、添付ファイル、HTML フォーマット、CC と BCC、重要性と優先度などのサポートなど、多くの高度な機能を備えています。 PHPMailer を使用したサンプル コードを次に示します。

//引入PHPMailer库
require_once('PHPMailer/class.phpmailer.php');

//实例化PHPMailer类
$mail = new PHPMailer();

//设置SMTP服务器
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.example.com';
$mail->Port = 465;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';

//设置邮件头信息
$mail->From = 'sender@example.com';
$mail->AddAddress('recipient@example.com');
$mail->Subject = 'Test email';
$mail->Body = 'This is a test email message.';

//发送邮件
if(!$mail->Send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent.';
}

このコードでは、PHPMailer クラスをインスタンス化し、SMTP サーバーのパラメータを設定します。次に、電子メールのヘッダー情報を設定し、Send() メソッドを呼び出して電子メールを送信します。

5. 概要

この記事では、PHP を使用して SMTP 経由で電子メールを送信する方法についてのガイドを提供します。 PHP の組み込み mail() 関数またはカスタム smtp_mail() 関数を使用して電子メールを送信できます。添付ファイル、HTML 形式、SMTP 認証、CC および BCC などのより高度な機能が必要な場合は、PHPMailer ライブラリを使用してください。どの方法を使用する場合でも、SMTP サーバーの設定と認証について理解する必要があります。

以上がPHP を使用して SMTP 経由でメールを送信するための包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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