PHP邮件发送库:Swiftmailer
Swiftmailer需要PHP 7.0或更高版本,(proc_*函数可用。)
安装
composer require "swiftmailer/swiftmailer:^6.0"
使用
require_once '/path/to/vendor/autoload.php';
$transport = (new Swift_SmtpTransport('smtp.163.com', 25)) // 邮箱服务器
  ->setUsername('your username')  // 邮箱用户名
  ->setPassword('your password')   // 邮箱密码,有的邮件服务器是授权码;
$mailer = new Swift_Mailer($transport);
$message = (new Swift_Message('Wonderful Subject')) // 邮件标题
  ->setFrom(['john@doe.com' => 'John Doe']) // 发送者
  ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name']) //发送对象,数组形式支持多个
  ->setBody('Here is the message itself') //邮件内容
  ;
$result = $mailer->send($message);
如果发送成功,会返回$result的值为1,即true。
高级应用
发送邮件时最关键的是创建消息体,在Swift Mailer中创建消息是通过使用库提供的各种MIME实体完成的,因此我们不需要花太多时间去了解如何处理MIME实体,只需拿来使用即可。
Swift Mailer提供了创建邮件消息的一系列方法,下面列举我们常用到的一些方法:
setSubject():邮件主题
setFrom():发件人地址,数组形式,可以是多个发件人
setTo():收件人地址,数组形式,可以是多个收件人
setBody():邮件内容
addPart():邮件内容指定输出类型,支持html内容输出
attach():添加附件
setCc():抄送,支持多个邮箱地址
setBcc():密送,支持多个邮箱地址
常见问题
- 报错信息:Fatal error: Uncaught Swift_TransportException: Failed to authenticate on SMTP server with username xxx...
 很显然是邮件服务的账号密码不正确导致验证不能通过。目前163免费邮和QQ邮箱等提供给第三方客户端使用的SMTP/POP等服务需要设置一个授权码,具体可以到邮箱里设置。然后将正确的邮箱账号和授权码配置到Swift Mailer中即可。
- 报错信息: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/
PHP邮件发送库:Swiftmailer的更多相关文章
- (Swiftmailer)高效的PHP邮件发送库
		Swiftmailer是一个类似PHPMailer邮件发送组件,它也支持HTML格式.附件发送,但它发送效率相当高,成功率也非常高,很多PHP框架都集成了Swiftmailer. Swiftmaile ... 
- php发邮件:swiftmailer, php邮件库——swiftmailer
		php发邮件:swiftmailer, php邮件库——swiftmailer 最近看到一个好的php邮件库,与phpmailer作用一样,但性能比phpmailer好,尤其是在处理附件的能力上,发送 ... 
- thinkphp 整合 swiftmailer 实现邮件发送
		thinkphp swiftmailer(phpmailer) 文件夹结构 图 1 swiftmailer-phpmailer 将swiftmailer整合到thinkphp中.如上图 1 我下载的版 ... 
- Laravel - 上手实现 - 邮件发送
		Laravel 自带 SwiftMailer 库,集成了多种邮件API,可以很方便的实现邮件的发送. 我们使用到的是SMTP(Simple Message Transfer Protocol)简单邮件 ... 
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
		今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ... 
- C#邮件发送问题(二)
		C#邮件发送问题(一) 三.C#下创建基于TcpClient发送邮件组件 在上一节在Dos命令行下测试SMTP服务器连接时,已经使用了SMTP的部分命令,但是当时无法对信息进行编码和解码,也就无法继续 ... 
- 转:Node.js邮件发送组件- Nodemailer 1.0发布
		原文来自于http://www.infoq.com/cn/news/2014/07/node.js-nodemailer1.0-publish Nodemailer是一个简单易用的Node.js邮件发 ... 
- 解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)
		刚刚用了一下yii邮件发送功能,虽然结果返回成功,但接收不到邮件.配置文件代码如下: 'components' => [ 'db' => [ 'class' => 'yii\db\C ... 
- java 邮件发送工具类
		首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ... 
随机推荐
- 用css修改HTML5 input placeholder颜色
			使用CSS修改HTML5 input placeholder颜色 本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和 ... 
- MSSQL数据库设置单用户模式后无法连上解决办法
			设置数据库单用户模式后, 发现用系统管理员账号无法连接数据库, 用sa账号也不行. 首先, 马上去查了一下有什么进程比这个连接给占用了 SELECT [Spid] = session_Id , eci ... 
- JavaScript 字符串匹配 | JS 的正则用法 | 从后边匹配
			// 字符串匹配命令是 match,不是 replace var text = "http://123.com/456.html" ; window.alert(text.matc ... 
- PuTTY   命令行改进   有效解决 中文乱码
			PuTTY 是一个免费且跨平台的并支持SSH和Telnet 的客户端, 包括xterm 终端模拟器. 它由Simon Tatham 编写并维护. http://www.chiark.greenend ... 
- 路飞学城Python-Day140
			Django思维导图 
- Linux搭建oracle数据库
			1.安装前准备 软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ... 
- Hadoop 技术笔记
			Flume与Kafka Flume 是一个分布式,可靠的,可用的服务,有效的收集,聚合和移动海量的日志数据.它有一个简单而灵活的架构,基于流数据流.具有很好的冗余和容错性,以及可靠性和多故障转移和恢复 ... 
- URL编码及解码
			为什么要对URL进行编码? 一般来说,网页URL只能使用英文.数字.还有一些特定的字符.根据网络标准RFC 1738做了硬性规定: 只有字母和数字[0-9a-zA-Z].一些特殊符号"$-_ ... 
- 基于 SpringMVC——web.xml基本配置
			<!--声明应用范围内的初始化参数--> <context-param> <param-name>contextConfigLocation</param-n ... 
- weblogic11g 密码忘记肿么办?
			今天小编在用 weblogic 时,把密码忘记了,肿么办呢!很是着急,还不想重新建空间.那就跟我做下面的操作吧! %DOMAIN_HOME%为你 weblogic base_domain 安装目录:我 ... 
