ホームページ >バックエンド開発 >PHPチュートリアル >PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

青灯夜游
青灯夜游オリジナル
2018-11-02 18:11:075286ブラウズ

php でメールを送信するにはどうすればよいですか?この記事では、PHPMailer SMTP を使用して電子メールを送信する方法を紹介し、PHPMailer の設定方法と使用方法を理解します。一定の参考値があるので、困っている友達は参考にしていただければ幸いです。

PHPMailer は、人気のある PHP 電子メール送信ライブラリです。 mail() 関数または SMTP を介したメール送信をサポートします。つまり、PHPMailer は、PHP ベースの環境で電子メールを送信する効率的な方法です。

見てみましょう

ステップ 1 - PHPMailer の詳細を収集します

Hostinger SMTP で PHPMailer を使用するには、まず、メールアカウント。これは、Web ホスト パネルの [電子メール アカウント] セクションで行うことができます。

PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

完了したら、同じセクションにある SMTP の詳細を取得します。

PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

これで 4 つのセクションができます。それらは:

1、電子メール アカウントのユーザー名

2、電子メール アカウントのパスワード

3、SMTP ホスト

4、SMTP ポート

ステップ 2 - PHPMailer のインストール

必要な詳細がすべて揃ったので、PHPMailer のセットアップを開始できます。簡単な方法は Composer を使用することです。これは共有ホスティング プランにプリインストールされているため、SSH 経由で接続し、次のコマンドを実行するだけです:

cd public_html

その後、次のコマンドを実行します:

composer require phpmailer/phpmailer

インストールが完了するまでしばらくお待ちください。完了すると、新しく作成されたディレクトリに PHPMailer が表示されます。

ステップ 3 - PHPMailer を理解する

PHPMailer とその仕組みを理解するために、SMTP を使用した配信の例を見てみましょう。

<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = &#39;mx1.hostinger.com&#39;;
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = &#39;test@hostinger-tutorials.com&#39;;
$mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
$mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addReplyTo(&#39;reply-box@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
$mail->Subject = &#39;PHPMailer SMTP message&#39;;
$mail->msgHTML(file_get_contents(&#39;message.html&#39;), __DIR__);
$mail->AltBody = &#39;This is a plain text message body&#39;;
$mail->addAttachment(&#39;test.txt&#39;);
if (!$mail->send()) {
    echo &#39;Mailer 错误: &#39; . $mail->ErrorInfo;
} else {
    echo &#39;发送消息!&#39;;
}
?>

各コンポーネントの機能を見てみましょう:

PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

プロのヒント:

SMTPDebug = 2 ; 次の場合に役立ちます。スクリプトをテストして、それがどのように機能するかを確認します。

エンド ユーザーに SMTP 配信レポートが表示されないようにするには、最終ビルドでこれを SMTPDebug = 0; に設定します。

コード全体を調べると、最初の例とは少し異なることを行っていることがわかります。 HTML メッセージを送信しています。そのコンテンツは、同じディレクトリにある message.html ファイルから取得されます。これにより、テキストの書式設定が可能になり、プレーン テキスト メッセージよりも多くの機能が提供されます。

ステップ 4 - PHPMailer スクリプトの実行

testphpmailer.php ファイルを作成し、前に取得した SMTP の詳細をすべてのフィールドに入力しましょう。ブラウザに「YourDomain.com/testphpmailer.php」と入力してスクリプトを実行すると、次のようなメッセージが表示されます。

PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

ステップ 5 - PHPMailer 問い合わせフォームの例

PHPMailer は、単純なメッセージの送信以外にも使用できます。これを活用する方法の 1 つは、訪問者やユーザーが連絡できる連絡フォームを作成することです。このようなスクリプトの基本的な例を次に示します。

<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = &#39;mx1.hostinger.com&#39;;
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->Username = &#39;test@hostinger-tutorials.com&#39;;
    $mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
    $mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Mr. Drago&#39;);
    $mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
if ($mail->addReplyTo($_POST[&#39;email&#39;], $_POST[&#39;name&#39;])) {
        $mail->Subject = &#39;PHPMailer contact form&#39;;
        $mail->isHTML(false);
        $mail->Body = <<<EOT
Email: {$_POST[&#39;email&#39;]}
Name: {$_POST[&#39;name&#39;]}
Message: {$_POST[&#39;message&#39;]}
EOT;
if (!$mail->send()) {
            $msg = &#39;对不起,出了点问题。请稍后再试。&#39;;
} else {
            $msg = &#39;发送消息成功!谢谢您联络我们。&#39;;
}
} else {
        $msg = &#39;电子邮件地址无效,邮件被忽略。&#39;;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>邮件表单</title>
</head>
<body>
<h1>Let&#39;s get in touch!</h1>
<?php if (!empty($msg)) {
    echo "<h2>$msg</h2>";
} ?>
<form method="POST">
    <label for="name">名称: <input type="text" name="name" id="name"></label><br><br>

    <label for="email">电子邮件: <input type="email" name="email" id="email"></label><br><br>

    <label for="message">消息:<textarea name="message" id="message" rows="8" cols="20"></textarea></label><br><br>
    <input type="submit" value="发送">
</form>
</body>
</html>

最終結果は次のようになります。

PHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装

ユーザーがメッセージを送信すると、確認とコンテンツは、addAddress フィールドに入力された電子メール アドレスに届きます。

プロのヒント: PHPMailer の問い合わせフォームが機能しない場合は、次の行を追加して問題の原因を確認してください: $ mail-> SMTPDebug = 2;

完了したら、次の行を追加してください。それを削除するか、ゼロに設定することを忘れないでください。

以上がPHPでメールを送信するにはどうすればよいですか? PHPMailerを使用して実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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