目次
コアポイント
phpmailerとphpmail()関数の比較
添付ファイルを含む電子メールを送信します
phpmailerでは、Pop-be-smtp検証を許可してメールを送信します。つまり、POPを使用して認証し、SMTPを使用してメールを送信できます。残念ながら、PHPMailerは、POP3プロトコルを使用してメールサーバーからメールの取得をサポートしていません。メールのみの送信に限定されます。
あなたがPHP開発者である場合、プログラムで電子メールの送信を避けることはほとんど不可能です。 MandrillやSendGridなどのサードパーティサービスを選択できますが、これは単に実行可能ではない場合があり、自分のメール送信ライブラリを書くときはさらにそうです。これは、PHPMailerとその代替案(Zend Mail、Swift Maelerなど)が出てくる場所です。
phpmailerとは何ですか? PHPMailerは、PHPアプリケーションから電子メールを送信するための人気のあるオープンソースPHPライブラリです。これは、SMTP、
ホームページ バックエンド開発 PHPチュートリアル PHPMailerを使用してPHPで電子メールを送信します

PHPMailerを使用してPHPで電子メールを送信します

Feb 08, 2025 am 10:37 AM

phpmailer:phpメールを送信するための強力なツール

PHPMailerは、2001年にリリースされて以来、PHP開発者がプロ​​グラムの電子メールを送信するための優先オプションの1つであり、SwiftMailerなどの他の人気のあるライブラリと同等です。この記事では、PHPMailerがPHPの組み込みmail()機能よりも優れている理由を説明し、コードの例を提供します。

Sending Emails in PHP with PHPMailer

コアポイント

  • PHPMailerは、オブジェクト指向のインターフェイス、より簡単なHTMLおよびアタッチメント処理、非ローカルメールサーバーの使用など、PHPの組み込みmail()関数よりも多くの機能と柔軟性を提供する人気のあるオープンソースPHPメール配信ライブラリです。能力。
  • PHPMailerはComposerを使用してインストールでき、WordPress、Drupal、Joomlaなどの人気のあるPHPコンテンツ管理システムで使用できます。
  • このライブラリは、40を超える言語でエラーメッセージを印刷できる強力なエラー処理メカニズムを提供し、SSLおよびTLS認証だけでなくSMTPプロトコルサポートを統合します。
  • メールの送信に加えて、PHPMailerは添付ファイルの追加、HTMLまたはプレーンテキストバージョンのメールを送信し、SMTPを使用して非ローカルサーバーからメールを送信することもサポートしますが、POP3プロトコルを使用してメールサーバーからメールの取得をサポートしていません。

phpmailerとphpmail()関数の比較

ほとんどの場合、PHPMailerはPHPビルトインmail()関数に代わるものですが、多くの場合、mail()関数の柔軟性はニーズを満たすのに十分ではありません。

最初に、phpmailerはオブジェクト指向のインターフェイスを提供しますが、mail()関数はオブジェクト指向ではありません。通常、PHP開発者は、mail()関数を使用して電子メールを送信するときに$headers文字列を作成することを好みません。これには多くのエスケープ操作が必要です。 PHPMailerはこのプロセスを簡素化します。 mail()関数を使用して添付ファイルとHTMLベースのメールを送信する場合、開発者は複雑なコード(脱出、エンコード、フォーマット)を記述する必要があり、PHPMailerはこれを簡単にします。

さらに、mail()関数では、電子メールを送信するためにローカルメールサーバーが必要です。これは必ずしも簡単ではありません。認証が利用可能な場合、PHPMailerは非ローカルメールサーバー(SMTP)を使用できます。

その他の利点は次のとおりです

    メッセージの送信が失敗すると、40以上の言語でさまざまなエラーメッセージを印刷できます。
  • SMTPプロトコルサポートとSSLおよびTLS認証を統合します。
  • 非HTMLメールクライアントに別のプレーンテキストバージョンのメッセージを送信できます。
  • それを安全で最新の状態に保つために、開発者の非常に活発なコミュニティがあります。
PHPMailerは、WordPress、Drupal、Joomlaなどの一般的なPHPコンテンツ管理システムでも使用されています。

phpmailerのインストール

phpmailerは、Composer:

を使用してインストールできます

composer require phpmailer/phpmailer
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
phpmailer

を使用してローカルWebサーバーから電子メールを送信します

以下は、PHPMailerを使用してローカルWebサーバーからメールを送信する最も簡単な例です。
composer require phpmailer/phpmailer
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

PHPファイルのコードとコメントは、電子メールの件名、送信者の電子メールアドレス、HTML電子メールボディ、およびエラーの扱い場所を十分に説明できます。

添付ファイルを含む電子メールを送信します

以下は、phpmailerを使用して添付ファイル付きのメールを送信する方法の例です。

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once "vendor/autoload.php";

// PHPMailer对象
$mail = new PHPMailer(true); // 构造函数中的参数true启用异常

// 发件人邮箱地址和名称
$mail->From = "from@yourdomain.com";
$mail->FromName = "完整姓名";

// 收件人地址和名称
$mail->addAddress("recepient1@example.com", "收件人姓名");
$mail->addAddress("recepient1@example.com"); // 收件人姓名是可选的

// 收件人回复地址
$mail->addReplyTo("reply@yourdomain.com", "回复");

// 抄送和密送
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");

// 发送HTML或纯文本邮件
$mail->isHTML(true);

$mail->Subject = "主题文本";
$mail->Body = "<i>HTML格式邮件正文</i>";
$mail->AltBody = "这是邮件内容的纯文本版本";

try {
    $mail->send();
    echo "邮件已成功发送";
} catch (Exception $e) {
    echo "邮件错误:" . $mail->ErrorInfo;
}
?>
ログイン後にコピー
ここでは、2つのファイル-file.txt(スクリプトと同じディレクトリにある)と画像/profile.png(スクリプトディレクトリの画像ディレクトリにある)を添付します。

メールに添付ファイルを追加するには、ファイルパスをパラメーターとして渡すことにより、phpmailerオブジェクトの

関数を呼び出すだけです。複数のファイルを添付するには、複数回呼び出す必要があります。 addAttachment

トラブルシューティング

2つの例では、デバッグのために

PHPMailerのクラスを使用したため、エラーが発生する可能性のある問題をデバッグするのに役立ちます。また、PHPMailerコンストラクターにパラメーターExceptionを追加して、高レベルでより記述的な例外を出力しました。 true

使用しているシステムによっては、バックグラウンドで

関数を実行することに関連する最大のエラーがあります。 mail()

メールエラー:メール関数をインスタンス化することはできません。

より詳細なエラー情報が必要な場合は、

句に以下を追加することもできます。

通常、メール関数の問題は、欠落しているメールサーバーの設定に関連しています。 catch

これはおそらく私たちが抱えている最も一般的な問題であり、SMTPを使用して簡単に解決できます。
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once "vendor/autoload.php";

$mail = new PHPMailer;

$mail->From = "from@yourdomain.com";
$mail->FromName = "完整姓名";

$mail->addAddress("recipient1@example.com", "收件人姓名");

// 提供附件的文件路径和名称
$mail->addAttachment("file.txt", "File.txt");
$mail->addAttachment("images/profile.png"); // 文件名是可选的

$mail->isHTML(true);

$mail->Subject = "主题文本";
$mail->Body = "<i>HTML格式邮件正文</i>";
$mail->AltBody = "这是邮件内容的纯文本版本";

try {
    $mail->send();
    echo "邮件已成功发送";
} catch (Exception $e) {
    echo "邮件错误:" . $mail->ErrorInfo;
}
?>
ログイン後にコピー

ローカリゼーションエラーメッセージを表示error_get_last

print_r(error_get_last());
ログイン後にコピー
43の異なる言語でエラーメッセージを返すことができます。

異なる言語でエラーメッセージを表示するには、PHPMailerのソースコードからProjectディレクトリに言語ディレクトリをコピーします。

たとえば、ロシア語でエラーメッセージを返すには、次のメソッドコールを使用してphpmailerオブジェクトをロシア語に設定します。

言語ディレクトリに独自の言語ファイルを追加することもできます。 $mail->ErrorInfo

smtp

を使用しています

別のホストのメールサーバーを使用してメールを送信できますが、これには最初に認証が必要です。たとえば、Gmailのメールサーバーからメールを送信するには、Gmailアカウントが必要です。

SMTPは、メールクライアントがメールリクエストをメールサーバーに送信するために使用されるプロトコルです。メールサーバーがメールを検証した後、ターゲットメールサーバーに送信されます。
<code>Array (
    [type] => 2
    [message] => mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
    [file] => OUR_PATH \vendor\phpmailer\phpmailer\src\PHPMailer.php
    [line] => 863
)</code>
ログイン後にコピー

以下は、Gmail Mail Serverからドメインからメールを送信する例です。コードを実行するためにローカルサーバーは必要ありません。 SMTPプロトコルを使用します:

composer require phpmailer/phpmailer
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

GmailにはSMTPを介してTLS暗号化が必要なため、それに応じて設定します。 SMTPを介して送信する前に、暗号化タイプが必要かどうか、および認証が必要な場合は、ユーザー名とパスワードも必要な場合、ホスト名、ポート番号を確認する必要があります。 Gmailで2要素認証を有効にしても、ユーザー名/パスワードでSMTPを使用することはできないことに注意してください。代わりに、追加の構成が必要です。

ローカルメールの代わりにリモートSMTPを使用することの大きな利点の1つは、PHPの

関数を使用してメールを送信し、送信者アドレスドメインをローカルドメイン名(サーバー名)とは異なるものに設定する場合、受信者は受信者の場合です。メールサーバーの攻撃フィルターは、スパムとしてマークされます。たとえば、送信者アドレスname@gmail.comを使用してHostname Example.comを備えたサーバーからname@yahoo.comにメールを送信すると、Yahooのサーバーはスパムとしてマークするか、ユーザーにメッセージを表示します。メッセージのソースはexample.comであるため、メッセージを信頼するためには、gmail.comから表示されます。 name@gmail.comを持っていますが、Yahooにはこれを知る方法がありません。 mail()

pop3を使用して電子メールを取得します また、

phpmailerでは、Pop-be-smtp検証を許可してメールを送信します。つまり、POPを使用して認証し、SMTPを使用してメールを送信できます。残念ながら、PHPMailerは、POP3プロトコルを使用してメールサーバーからメールの取得をサポートしていません。メールのみの送信に限定されます。

結論

あなたがPHP開発者である場合、プログラムで電子メールの送信を避けることはほとんど不可能です。 MandrillやSendGridなどのサードパーティサービスを選択できますが、これは単に実行可能ではない場合があり、自分のメール送信ライブラリを書くときはさらにそうです。これは、PHPMailerとその代替案(Zend Mail、Swift Maelerなど)が出てくる場所です。

リポジトリWikiまたは公式ドキュメントで、このライブラリに関するAPIについて学ぶことができます。

PHPライブラリの依存関係に悩まされていますか?画面録音を見て、作曲家がそれを管理するのに役立つ方法を確認してください。

phpmailer

に関するよくある質問

phpmailerとは何ですか? PHPMailerは、PHPアプリケーションから電子メールを送信するための人気のあるオープンソースPHPライブラリです。これは、SMTP、

、またはその他の電子メール送信方法を介して電子メールを送信するためのシンプルで柔軟な方法を提供します。

mail() phpmailerをインストールする方法は? Composerを使用してphpmailerをインストールするか、Githubからライブラリを直接ダウンロードすることもできます。詳細なインストール手順は、PHPMailerドキュメントに記載されています。

phpmailerは自由に使用できますか?はい、PHPMailerはオープンソースであり、LGPLライセンスの下でリリースされています。つまり、オープンソースおよび商業プロジェクトで無料で利用できます。

phpmailerのシステム要件は何ですか? PHPMailerは、PHP 5.5以降と互換性があります。 Webホスティング環境がこれらのPHPバージョンをサポートしていることを確認してください。

phpmailerを使用して電子メールを送信する方法は? phpmailerクラスのインスタンスを作成し、SMTPサーバーの詳細や電子メールコンテンツなどの必要なプロパティを設定して、

メソッドを呼び出すことにより、phpmailerを使用して電子メールを送信できます。

phpmailerはメールで添付ファイルを処理できますか?はい、PHPMailerは、メールに添付ファイルを追加する方法を提供します。サーバーまたはリモートの場所からファイルを添付できます。

phpmailerでHTMLメールを送信できますか?

はい、phpmailerを使用すると、プレーンテキストとHTML形式で電子メールを送信できます。それに応じてメッセージの種類とフォーマットを設定できます。プレーンテキストメールは、非HTMLメールクライアントに適しています。

phpmailerを使用して、非HTMLメールクライアントにプレーンテキストメールを送信できますか?

はい、phpmailerを使用すると、HTMLメールの代替としてプレーンテキストメールを送信できます。それに応じてメッセージの種類とフォーマットを設定できます。プレーンテキストメールは、非HTMLメールクライアントに適しています。

sendmailなどの非SMTPメールサーバーでphpmailerを使用できますか?はい、PHPMailerは、SMTP、

、およびその他のカスタムメソッドを含むさまざまな電子メール転送方法をサポートしているため、さまざまな種類のメールサーバーで使用できます。 mail()

Sending Emails in PHP with PHPMailer

以上がPHPMailerを使用して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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO) PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO) Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

See all articles