高效的PHP邮件发送库:Swiftmailer

原创 2017年11月25日 00:00:00

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

高效的PHP邮件发送库:Swiftmailer

Swiftmailer是一个类似PHPMailer邮件发送组件,它也支持HTML格式、附件发送,但它发送效率相当高,成功率也非常高,很多PHP框架都集成了Swiftmailer。

Swiftmailer需要PHP 7.0或更高版本,( proc_* 函数可用。)

安装

我们使用Composer来安装Swiftmailer:

  1. composer require "swiftmailer/swiftmailer:^6.0"

基本使用

只需填写邮箱服务器相关配置,然后填写邮件标题、发送对象和邮件内容,运行即可完成发送邮件任务:

  1. require_once '/path/to/vendor/autoload.php';

  2. $transport = (new Swift_SmtpTransport('smtp.163.com', 25)) // 邮箱服务器

  3.  ->setUsername('your username')  // 邮箱用户名

  4.  ->setPassword('your password')   // 邮箱密码,有的邮件服务器是授权码

  5. ;

  6. $mailer = new Swift_Mailer($transport);

  7. $message = (new Swift_Message('Wonderful Subject')) // 邮件标题

  8.  ->setFrom(['john@doe.com' => 'John Doe']) // 发送者

  9.  ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name']) //发送对象,数组形式支持多个

  10.  ->setBody('Here is the message itself') //邮件内容

  11.  ;

  12. $result = $mailer->send($message);

如果发送成功,会返回$result的值为1,即true。

高级应用

发送邮件时最关键的是创建消息体,在Swift Mailer中创建消息是通过使用库提供的各种MIME实体完成的,因此我们不需要花太多时间去了解如何处理MIME实体,只需拿来使用即可。

Swift Mailer提供了创建邮件消息的一系列方法,下面列举我们常用到的一些方法:

  1. setSubject() :邮件主题

  2. setFrom() :发件人地址,数组形式,可以是多个发件人

  3. setTo() :收件人地址,数组形式,可以是多个收件人

  4. setBody() :邮件内容

  5. addPart() :邮件内容指定输出类型,支持html内容输出

  6. attach() :添加附件

  7. setCc() :抄送,支持多个邮箱地址

  8. setBcc() :密送,支持多个邮箱地址

常见问题

  1. 报错信息:Fatal error: Uncaught Swift_TransportException: Failed to authenticate on SMTP server with username xxx...

很显然是邮件服务的账号密码不正确导致验证不能通过。目前163免费邮和QQ邮箱等提供给第三方客户端使用的SMTP/POP等服务需要设置一个授权码,具体可以到邮箱里设置。然后将正确的邮箱账号和授权码配置到Swift Mailer中即可。

  1. 报错信息:PHP Fatal error: Uncaught Swift_TransportException: Connection could not be established with host smtp.163.com

不能连接上邮件服务器。如果出现这个情况,建议尝试改成ssl协议。笔者在本地使用官方的25端口发送邮件一切正常,到放到公网服务器上就提示如上错误信息了,折腾了好久,改下协议和端口,成功了:

$transport = (new Swift_SmtpTransport('ssl://smtp.163.com', 465)) 更多有关Swift Mailer的使用请参考官网: https://swiftmailer.symfony.com/

0?wx_fmt=png


版权声明:本文为博主原创文章,未经博主允许不得转载。

PHP高性能分布式应用服务器框架-SwooleDistributed

今年年底历时2年多的迭代,这是SD框架硕果满满的一年,通过不断的迭代和改进SD框架已经在圈内有良好的口碑,不少新生的框架借鉴了SD的设计思想,SD框架也被不少创业型公司和大型企业使用。 SD框架...

你终将成为你潜意识中想要成为的人

你终将成为你潜意识中想要成为的人 http://article.yeeyan.org/view/370949/391181 译者: ciel127 原作者:未知 发表时间:2013-...

thinkphp 整合 swiftmailer 实现邮件发送

thinkphp swiftmailer(phpmailer)目录结构 图 1 swiftmailer-phpmailer将swiftmailer整合到thinkphp中,如上图 1 我下载的版本是...

PHP Swift库(邮件发送)

  • 2016年03月17日 12:36
  • 211KB
  • 下载

php邮件发送

  • 2015年04月27日 16:19
  • 25KB
  • 下载

PHP实现邮件发送(PHPMailer+QQ邮箱)

最近复习原生PHP,看到邮件函数这一部分,就试着写一下邮件功能,在网上搜了一下,主要有两种实现方式:   1.PHP自带的mail()函数   2.封装的smtp邮件发送类 下面...

php 邮件发送

  • 2014年04月08日 11:21
  • 38KB
  • 下载

PHP 邮件发送 Socket

  • 2012年03月10日 18:26
  • 3KB
  • 下载

PHP基于SMTP协议实现邮件发送

SMTP协议当我们使用php的第三方库或工具类进行邮件发送的时候,是否想过一个问题: 为什么我们不能自己写php代码实现邮件发现,而要用别人的库呢?php发送邮件到底是如何实现的? 首先我们要了解...

php邮件发送

  • 2014年09月15日 18:27
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高效的PHP邮件发送库:Swiftmailer
举报原因:
原因补充:

(最多只允许输入30个字)