ThinkPHP集成PHPMailer发送邮件
下载 PHPMailer
发送邮件需要两个文件,如下:
- class.phpmailer.php
- class.smtp.php
下载地址:https://github.com/PHPMailer/PHPMailer
如果要用POP3接收邮件,还需下载 class.pop3.php 文件,本文主要讲发送邮件,收邮件方法类似。
部署文件
将下载的 class.phpmailer.php 和 class.smtp.php 文件放到 ThinkPHP/Library/Vendor 目录下:
分别重命名两个文件为:PHPMailer.php 和 SMTP.php 。
使用
使用方法简单,首先在需要用 PHPMailer
类的文件,使用 vendor()
方法导入这两个类文件:
vendor('SMTP'); vendor('PHPMailer');
然后就可以开始用了:
$mail = new \PHPMailer; //$mail->SMTPDebug = 3; // Enable verbose debug output $mail->CharSet = 'UTF-8'; // Set CharSet to UTF-8 $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '[email protected]'; // SMTP username $mail->Password = 'secret'; // SMTP password $mail->Port = 25; // TCP port to connect to $mail->setFrom('[email protected]', 'Mailer'); $mail->addAddress('[email protected]', 'Joe User'); // Add a recipient $mail->addAddress('[email protected]'); // Name is optional $mail->addReplyTo('[email protected]', 'Information'); $mail->addCC('[email protected]'); $mail->addBCC('[email protected]'); $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; }
这样就可以了。
上一篇: PHP cURL库函数抓取页面内容
这个是thinkphp什么版本的,我记得其他教程上写是把整个phpmailer放到ThinkPHP/Library/Vendor 这个目录下的。
ThinkPHP3.2.3版本。
把整个放进去当然也可以,如果仅仅发邮件的话,这两个文件就可以了的,没必要全部放进来把。
好文章,内容点石成金.
这个 有点看不明白, 上面那段代码是写在哪里,,本人初学者
写在同一个文件中的,也就是在用到PHPMailer的地方
必须依赖THINK PHP,还是可以任何框架里面使用?比如您的示例框架FASTPHP。
任何框架都可以用的,只要是PHP代码就可以
博主,写的不错,继续更新呀
好的,一定
能不能写写laravel,现在 laravel比较流行了
对laravel框架不熟呢,不敢写呀
TP5.0都在学习laravel了,这个最优美的框架可不能忽略
博主,你好,我在看购物车时看到有这一句,$arr = $db->Query($sql);请问这个Query是什么意思,是封装的一个函数吗
就是
$db
对象中的一个方法。ubuntu 16.04 发送邮件 成功,但没收到邮件
windows 可以,请问怎么处理。
3Q~~~~~~
查看下是不是端口没有开放
ssl://smtp.exmail.qq.com:465 SMTP connect() failed
QQ企业邮箱 465端口是开发的。阿里云ecs不行
是需要email服务器支持的。