この記事の内容は、PHPでメールを送信するためのPHPMailerの導入手順を解説したものです(コード付き) ある程度の参考価値はありますので、困っている方は参考にしていただければ幸いです。
昨日はメールを送信する関数を作りました。mail()関数を直接使う場合は、独自のメールサーバーが必要です。PHPMailerクラスを導入すると便利で手っ取り早いです。開発内容を書くだけです。手順:
一、(送信者の電子メールとして) 自分の電子メール アカウントを持つ
2 つの状況があります:
1. 企業電子メールの場合、必要なパラメータは電子メール番号とパスワードです
2. 個人用メールボックスの場合、必要なパラメータはメールボックス番号と認証コードです(有効にした後にのみ、PHP コードを通じて電子メールの自動送信を制御できます) )
2. PHPMailer のダウンロード
ダウンロードアドレス: https://github.com/PHPMailer/PHPMailer
ここでは thinkphp 5 を使用しています。ダウンロードして、ベンダー ディレクトリに置きます。
3. 電子メール メソッドをカプセル化して送信し、関連するパラメーターを設定します。
特定のコードここでは企業メールを使用しています。個人メールの場合は、次のいくつかのパラメータ値を変更する必要があります:
$mail->Host,$mail->Port,发件人邮箱密码(授权码)
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/10/15 0015 * Time: 13:33 */ namespace app\common\model; require VENDOR_PATH . 'PHPMailer/src/Exception.php'; require VENDOR_PATH . 'PHPMailer/src/PHPMailer.php'; require VENDOR_PATH . 'PHPMailer/src/SMTP.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception ; class Mail { //发件人邮箱 private static $_fromAddress = '***@medpeer.cn'; //发件人邮箱登录密码(非企业邮箱为授权码) private static $_pwd = '***'; //收件人邮箱 private static $_toAddress = '***@medpeer.cn'; /** * 发送邮件 * @author ZZ * @param string $fromAddress 发件人 * @param string $pwd 发件人登录密码 * @param string $toAddress 收件人 * @param string $title 邮件题目 * @param string $content 邮件内容 * @return array */ public function sendMail($title,$content,$toAddress = '',$fromAddress = '',$pwd = ''){ if (empty($title) || empty($content)) { return ['result' => false, 'msg' => '参数错误']; } if (empty($fromAddress)) { $fromAddress = self::$_fromAddress; $pwd = self::$_pwd; } if (empty($toAddress)) { $toAddress = self::$_toAddress; } $mail = new PHPMailer(); //告诉PHPMailer使用SMTP $mail->isSMTP(); //启用SMTP调试 // 0 =关闭(供生产使用) // 1 =客户端消息 // 2 =客户端和服务器消息 $mail->SMTPDebug = 2 ; //设置邮件服务器的主机名 $mail->Host = 'smtp.exmail.qq.com'; //使用 // $ mail-> Host = gethostbyname('smtp.gmail.com'); //如果您的网络不支持SMTP over IPv6 //设置SMTP端口号 - 587用于经过身份验证的TLS,即RFC4409 SMTP提交 $mail->Port = 465; //设置加密系统使用 - ssl(不建议使用)或tls $mail->SMTPSecure = 'ssl'; //是否使用SMTP身份验证 $mail->SMTPAuth = true ; //用于SMTP身份验证的用户名 - 使用gmail的完整电子邮件地址 $mail->Username = $fromAddress; //用于SMTP身份验证的密码(企业邮箱的话为登录密码) $mail->Password = $pwd; //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码 $mail->CharSet = 'UTF-8'; //设置要从中发送消息的人员 $mail->setFrom($fromAddress,'***'); //设置备用回复地址 //$mail->addReplyTo('***@qq.com','腾讯'); //设置要将消息发送给谁 $mail->addAddress($toAddress,'***'); //设置主题行 $mail->Subject = $title; //从外部文件中读取HTML邮件正文,将引用的图像转换为嵌入式图像 //将HTML转换为基本的纯文本替代正文 //$mail->msgHTML(file_get_contents(' contents.html '),__DIR__); //用手动创建的纯文本正文替换 $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->Body = $content; $result = $mail->send(); if (!$result) { return ['result' => false, 'msg' => $mail->ErrorInfo]; } else { return ['result' => true, 'msg' => '成功发送邮件消息'] ; } } }
以上がphpにPHPMailerを導入してメールを送信する方法を解説(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。