Cette fois, je vais vous apporter une analyse de cas de phpmailer utilisant php pour envoyer des e-mails. Quelles sont les précautions pour que phpmailer utilise php pour envoyer des e-mails. Ce qui suit est un cas pratique, jetons un coup d'œil. .
Étape 1 : Ouvrez le site Web pour télécharger PHPMailer. PHPMailer nécessite la prise en charge de l'extension sockets de PHP, et la connexion au serveur SMTP de la boîte aux lettres QQ doit être cryptée SSL, et PHP doit également inclure la prise en charge openssl.
Étape 2 : Utilisez la fonction phpinfo() pour afficher les informations sur le socket et l'extension openssl (le serveur wamp active cette extension par défaut).
Openssl S'il n'est pas activé, veuillez ouvrir le fichier php.ini pour l'activer.
Vérifiez d'abord si extension=php_openssl.dll dans php.ini existe. S'il existe, supprimez le précédent. caractère de commentaire ';' , Si cette ligne n'existe pas, ajoutez extension=php_openssl.dll.
Fichier principal de PHPMailer
Étape 3 : Paramètres de messagerie QQ
Toutes les boîtes aux lettres grand public prennent en charge le protocole SMTP, mais toutes les boîtes aux lettres ne sont pas activées par défaut. Vous pouvez l'activer manuellement dans les paramètres de la boîte aux lettres.
Après avoir fourni le compte et le mot de passe, le service tiers peut se connecter au serveur SMTP et l'utiliser pour contrôler la méthode de transfert de courrier.
Étape 4 : Activer le service SMTP
Sélectionnez le service IMAP/SMTP et cliquez pour activer le service
Étape 5 : Vérifier le mot de passe
Envoyer le SMS « Configurer le client de messagerie » au 1069-0700-69
Étape 6 : Obtenir le code d'autorisation
Mot de passe d'authentification du serveur SMTP, qui doit être conservé correctement (PS : il n'y a pas d'espaces dans le mot de passe)
Étape 7 : PHP envoie un e-mail
Code de base
Le code suivant démontre l'utilisation de PHPMailer. Faites attention au processus de configuration de l'instance PHPMailer.
// 引入PHPMailer的核心文件 require_once("PHPMailer/class.phpmailer.php"); require_once("PHPMailer/class.smtp.php"); // 实例化PHPMailer核心类 $mail = new PHPMailer(); // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式 $mail->SMTPDebug = 1; // 使用smtp鉴权方式发送邮件 $mail->isSMTP(); // smtp需要鉴权 这个必须是true $mail->SMTPAuth = true; // 链接qq域名邮箱的服务器地址 $mail->Host = 'smtp.qq.com'; // 设置使用ssl加密方式登录鉴权 $mail->SMTPSecure = 'ssl'; // 设置ssl连接smtp服务器的远程服务器端口号 $mail->Port = 465; // 设置发送的邮件的编码 $mail->CharSet = 'UTF-8'; // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名 $mail->FromName = '发件人昵称'; // smtp登录的账号 QQ邮箱即可 $mail->Username = '12345678@qq.com'; // smtp登录的密码 使用生成的授权码 $mail->Password = '**********'; // 设置发件人邮箱地址 同登录账号 $mail->From = '12345678@qq.com'; // 邮件正文是否为html编码 注意此处是一个方法 $mail->isHTML(true); // 设置收件人邮箱地址 $mail->addAddress('87654321@qq.com'); // 添加多个收件人 则多次调用方法即可 $mail->addAddress('87654321@163.com'); // 添加该邮件的主题 $mail->Subject = '邮件主题'; // 添加邮件正文 $mail->Body = '<h1>Hello World</h1>'; // 为该邮件添加附件 $mail->addAttachment('./example.pdf'); // 发送邮件 返回状态 $status = $mail->send();
J'utilise le code dans thinkphp5.0
/** * 邮件发送 * @param $to 接收人 * @param string $subject 邮件标题 * @param string $content 邮件内容(html模板渲染后的内容) * @throws Exception * @throws phpmailerException */ function send_email($to,$subject='',$content=''){ vendor('phpmailer.PHPMailerAutoload'); //require_once 'vendor/phpmailer/PHPMailerAutoload.php'; $mail = new PHPMailer; $arr = db('config')->where('inc_type','smtp')->select(); $config = convert_arr_kv($arr,'name','value'); $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码 $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //调试输出格式 //$mail->Debugoutput = 'html'; //smtp服务器 $mail->Host = $config['smtp_server']; //端口 - likely to be 25, 465 or 587 $mail->Port = $config['smtp_port']; if($mail->Port === 465) $mail->SMTPSecure = 'ssl';// 使用安全协议 //Whether to use SMTP authentication $mail->SMTPAuth = true; //发送邮箱 $mail->Username = $config['smtp_user']; //密码 $mail->Password = $config['smtp_pwd']; //Set who the message is to be sent from $mail->setFrom($config['smtp_user'],$config['email_id']); //回复地址 //$mail->addReplyTo('replyto@example.com', 'First Last'); //接收邮件方 if(is_array($to)){ foreach ($to as $v){ $mail->addAddress($v); } }else{ $mail->addAddress($to); } $mail->isHTML(true);// send as HTML //标题 $mail->Subject = $subject; //HTML内容转换 $mail->msgHTML($content); //Replace the plain text body with one created manually //$mail->AltBody = 'This is a plain-text message body'; //添加附件 //$mail->addAttachment('images/phpmailer_mini.png'); //send the message, check for errors return $mail->send(); }
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention à. d'autres articles connexes sur le site PHP chinois !
Lecture recommandée :
Explication détaillée de l'utilisation du tri à bulles PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!