Maison > développement back-end > tutoriel php > ThinkPHP Exemple d'utilisation de PHPMailer pour envoyer des e-mails

ThinkPHP Exemple d'utilisation de PHPMailer pour envoyer des e-mails

韦小宝
Libérer: 2023-03-17 16:36:01
original
2226 Les gens l'ont consulté

Je crois que de nombreux étudiants ont utilisé thinkphp, et le framework thinkphp lui-même dispose également d'une bibliothèque de classes. Dans cet article, nous expliquerons comment utiliser PHPMailer externe avec thinkphp Bibliothèque de classes.

Méthode 1 :

1 Téléchargez PHPmailer et extrayez-le dans le dossier ThinkPHP\Extend\Vendor

2. Utilisez la méthode Vendor fournie avec ThinkPHP pour charger la bibliothèque de classes tierce

3. Configurez les paramètres pertinents.

4. Pour faciliter les appels à volonté, créez une fonction d'envoi d'e-mails dans common.php, puis vous pourrez appeler cette fonction pour envoyer des e-mails

Après avoir défini la fonction, si vous souhaitez envoyer des e-mails, appelez directement sendMail();
/**
* 邮件发送
*/
function sendMail(){
// 载入邮件发送类库
Vendor('PHPMailer.PHPMailerAutoload');
$mail = new PHPMailer;
$mail->isSMTP();        //设置PHPMailer使用SMTP服务器发送Email
$mail->Host = 'smtp.163.com';   //指定SMTP服务器 可以是smtp.126.com, gmail, qq等服务器 自行查询
$mail->SMTPAuth = true;
$mail->CharSet='UTF-8';     //设置字符集 防止乱码
$mail->Username = 'username@163.com';  //发送人的邮箱账户
$mail->Password = 'xxxxxxxxxx';   //发送人的邮箱密码
$mail->Port = 25;   //SMTP服务器端口
$mail->From = 'user@admin.com';            //发件人邮箱地址
$mail->FromName = '在路上';                //发件人名称
$mail->addAddress('guest@test.com');      // 收件人邮箱地址 此处可以发送多个
$mail->WordWrap = 50;                                 // 换行字符数
$mail->isHTML(true);                                  // 设置邮件格式为HTML
$mail->Subject = '青岛XXX';       //邮件标题
$mail->Body    = &#39;尊敬的先生/女士:<br/>非常抱歉,您接受到这封邮件是因您的好友邀请您加入我们的CRM系统体验当中,请点击以下链接注册账户<a href=####>######</a><br/>如您没有相关意向,请忽略&#39;;
if(!$mail->send()) {
echo &#39;邮件发送失败.&#39;;
echo &#39;错误信息: &#39; . $mail->ErrorInfo;
} else {
echo &#39;邮件发送成功&#39;;
}
}
Copier après la connexion

pour définir le contenu d'envoi, le titre d'envoi et les destinataires comme variables, par exemple : sendMail($body, $title, $recipient) Le destinataire peut se présenter sous la forme d'un tableau, parcourez la fonction et vous avez terminé !! Certaines configurations du serveur SMTP et de l'expéditeur peuvent être écrites dans le fichier Conf\config.php et peuvent être directement appelées par le C. () méthode

<br/> méthode 2 :

La première étape consiste à télécharger le package compressé PHPMailer.class.php (il y a une pièce jointe). télécharger au-dessus de cet article)

Après la décompression, les éléments suivants apparaîtront Trois fichiers :

1.class.pop3.php
2.class.smtp.php
3.PHPMailer.class.php
PHPMailer.class.php这个文件就是核心的文件,把这个文件放到ThinkPHP的扩展包下路径如\下:ThinkPHP\Extend\Library
Copier après la connexion
La deuxième étape consiste à créer un nouveau fichier common.php dans le ThinkPHP commun et écrivez le code suivant :

<br/>
Copier après la connexion

<br/>

La troisième étape consiste à écrire le code suivant dans ThinkPHP, le fichier conf.php :

Remarque : ce qui suit est le test de ma propre boîte aux lettres QQ, chaque paramètre de boîte aux lettres est différent et la boîte aux lettres spécifique prévaudra. Le stmp de la boîte aux lettres qq doit être ouvert par vous-même dans le. boîte aux lettres.

returnarray(
//&#39;配置项&#39;=>&#39;配置值&#39;
&#39;MAIL_ADDRESS&#39;=>&#39;799783009@qq.com&#39;, // 邮箱地址
&#39;MAIL_LOGINNAME&#39;=>&#39;799783009@qq.com&#39;, // 邮箱登录帐号
&#39;MAIL_SMTP&#39;=>&#39;smtp.qq.com&#39;, // 邮箱SMTP服务器
&#39;MAIL_PASSWORD&#39;=>&#39;******&#39;, // 邮箱密码
&#39;SHOW_PAGE_TRACE&#39;=>true,
);
Copier après la connexion
Il reste à utiliser la quatrième étape. Dans ThinkPHP, écrivez le code suivant dans le fichier IndexAction.class.php :

D'accord, c'est aussi simple que cela
// 本类由系统自动生成,仅供测试用途
classIndexAction extendsAction {
publicfunctionindex(){
if(!empty($_POST[&#39;title&#39;]) && !empty($_POST[&#39;content&#39;])){
if(SendMail("597417106@qq.com",$_POST[&#39;tile&#39;],$_POST[&#39;content&#39;]))
echo&#39;发送成功!&#39;;
else
echo&#39;发送失败&#39;;
}
$this->assign(&#39;title&#39;,&#39;测试标题&#39;);
$this->display();
}
}
Copier après la connexion

<br/>La méthode 2 est considérée comme une méthode standard, le tout est mis dans la classe thinkphp. L'éditeur recommande d'utiliser la deuxième solution.

PHP utilise la classe SMTP pour envoyer facilement des e-mails

Lorsque vous avez toujours du mal avec le fait que la fonction mail() intégrée de PHP ne peut pas envoyer d'e-mails, alors vous avez de la chance maintenant, ceci l'article est ici. Peut vous aider !

PHP utilise la classe SMTP pour envoyer des e-mails, ce qui a fait ses preuves. Je l'utilise depuis longtemps et fondamentalement, il n'y a eu aucun problème. En arrière-plan de ce blog, lorsque le blogueur répond à un message, un e-mail avec une nouvelle invite de réponse sera automatiquement envoyé à l'internaute, ce qui est également implémenté en utilisant la méthode décrite dans cet article.

La méthode d'envoi d'e-mails à l'aide de la classe smtp est en fait très simple et stable. La classe a été écrite par d'autres, et il vous suffit de l'appeler. Vous pouvez envoyer des e-mails avec seulement quelques configurations simples. Avez-vous hâte de l'essayer ?

Ce qui suit est le code de base :

Voici deux exemples de ThinkPHP utilisant
<?php
require_once "email.class.php";
//******************** 配置信息 ********************************
$smtpserver = "smtp.126.com";//SMTP服务器
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "new2008oh@126.com";//SMTP服务器的用户邮箱
$smtpemailto = $_POST[&#39;toemail&#39;];//发送给谁
$smtpuser = "new2008oh";//SMTP服务器的用户帐号
$smtppass = "您的邮箱密码";//SMTP服务器的用户密码
$mailtitle = $_POST[&#39;title&#39;];//邮件主题
$mailcontent = "<h1>".$_POST[&#39;content&#39;]."</h1>";//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false;//是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
echo "<div style=&#39;width:300px; margin:36px auto;&#39;>";
if($state==""){
echo "对不起,邮件发送失败!请检查邮箱填写是否有误。";
echo "<a href=&#39;index.html&#39;>点此返回</a>";
exit();
}
echo "恭喜!邮件发送成功!!";
echo "<a href=&#39;index.html&#39;>点此返回</a>";
echo "</div>";
?>
Copier après la connexion
PHPMailer pour envoyer des e-mails

Pour plus d'informations. , veuillez rechercher le site Web PHP chinois ~

Recommandations associées :

Vous apprendre à utiliser thinkphp pour créer des courts métrages liens

Comment thinkphp exécute les instructions SQL natives

Cinq façons de mettre à jour la base de données dans thinkphp.

Exemple de code pour implémenter une requête associée à plusieurs tables dans thinkphp

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal