Download the PHP package liwenyu/yii2-swiftmailer without Composer
On this page you can find all versions of the php package liwenyu/yii2-swiftmailer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package yii2-swiftmailer
Yii2 Mailer Extension
基于 yii2-swiftmailer 的 Yii2 扩展,实现微软邮件发送功能。
功能特性
- ✅ 基于 Microsoft Graph API 的邮件发送
- ✅ 支持 Office 365 和 Outlook 邮件服务
- ✅ 支持 HTML 和纯文本邮件
- ✅ 支持邮件附件
- ✅ 支持抄送和密送
- ✅ 支持批量发送
- ✅ 支持邮件草稿功能
- ✅ 支持邮件管理(读取、删除、标记已读)
- ✅ 完整的错误处理和日志记录
- ✅ 完全兼容官方 yii2-swiftmailer 的所有功能
与官方 yii2-swiftmailer 的功能对比
✅ 完全支持的功能
1. 基础邮件发送功能
- ✅ 继承 BaseMailer - 完全兼容 Yii2 邮件发送器接口
- ✅ compose() 方法 - 创建邮件消息
- ✅ send() 方法 - 发送邮件
- ✅ 视图模板支持 - 支持 Yii2 视图模板渲染
- ✅ 布局支持 - 支持邮件布局模板
2. 消息属性支持
- ✅ 主题设置 -
setSubject(),getSubject() - ✅ 收件人设置 -
setTo(),getTo() - ✅ 抄送设置 -
setCc(),getCc() - ✅ 密送设置 -
setBcc(),getBcc() - ✅ 发件人设置 -
setFrom(),getFrom() - ✅ 回复地址 -
setReplyTo(),getReplyTo() - ✅ 字符编码 -
setCharset(),getCharset() - ✅ HTML 内容 -
setHtmlBody() - ✅ 纯文本内容 -
setTextBody() - ✅ 内容获取 -
toString()
3. 附件功能
- ✅ 文件附件 -
attachFile($filePath, $options) - ✅ 内容附件 -
attach($fileName, $options) - ✅ 内容附件 -
attachContent($content, $options) - ✅ 嵌入图片 -
embed($filePath, $cid) - ✅ 嵌入内容 -
embedContent($content, $contentType, $cid) - ✅ 获取嵌入 CID -
getEmbeddedCid($filePath) - ✅ 附件列表 -
getAttachments() - ✅ 自动内容类型检测 - 支持常见文件类型
4. 邮件属性
- ✅ 优先级设置 -
setPriority(),getPriority() - ✅ 重要性设置 -
setImportance(),getImportance() - ✅ 敏感度设置 -
setSensitivity(),getSensitivity()
🚀 额外增强功能
1. Microsoft Graph API 集成
- ✅ OAuth2 认证 - 自动获取和管理访问令牌
- ✅ 邮件管理 - 读取、删除、标记已读邮件
- ✅ 用户信息 - 获取用户详细信息
- ✅ 邮件文件夹 - 管理邮件文件夹
- ✅ 草稿功能 - 创建和发送邮件草稿
2. 高级功能
- ✅ 批量发送 -
sendBulkMail() - ✅ 简单发送 -
sendSimpleMail() - ✅ 发送器信息 -
getMailerInfo() - ✅ 可用性检查 -
isAvailable() - ✅ 发送统计 -
getStats() - ✅ 调试模式 - 详细的日志记录
- ✅ 错误处理 - 完善的异常处理机制
- ✅ 配置验证 - 自动验证配置有效性
📋 功能对比表
| 功能 | 官方 yii2-swiftmailer | 本扩展 | 说明 |
|---|---|---|---|
| 基础发送 | ✅ | ✅ | 完全兼容 |
| 视图模板 | ✅ | ✅ | 完全兼容 |
| HTML/文本 | ✅ | ✅ | 完全兼容 |
| 附件 | ✅ | ✅ | 完全兼容 |
| 嵌入图片 | ✅ | ✅ | 完全兼容 |
| 抄送/密送 | ✅ | ✅ | 完全兼容 |
| 回复地址 | ✅ | ✅ | 完全兼容 |
| 字符编码 | ✅ | ✅ | 完全兼容 |
| 优先级 | ✅ | ✅ | 完全兼容 |
| 重要性 | ✅ | ✅ | 完全兼容 |
| 敏感度 | ✅ | ✅ | 完全兼容 |
| 批量发送 | ❌ | ✅ | 扩展功能 |
| 简单发送 | ❌ | ✅ | 扩展功能 |
| Microsoft Graph | ❌ | ✅ | 扩展功能 |
| 邮件管理 | ❌ | ✅ | 扩展功能 |
| OAuth2 认证 | ❌ | ✅ | 扩展功能 |
🔄 无缝迁移
您可以直接替换官方 yii2-swiftmailer,现有代码无需任何修改:
🔄 从官方 yii2-swiftmailer 迁移
1. 安装扩展
2. 更新配置
使用 Microsoft Graph API(推荐)
继续使用 SMTP 传输
配置差异说明:
- Microsoft Graph API 模式:使用
config配置 OAuth2 认证信息 - SMTP 模式:使用
transport配置 SMTP 传输(与官方 yii2-swiftmailer 相同) - 模式选择:通过
useSmtp参数控制使用哪种传输方式 - 向后兼容:支持两种模式,可以无缝迁移
3. 代码无需修改
🔧 配置验证工具
为了方便验证 Microsoft Exchange 配置,我们提供了专门的验证工具:
📁 Microsoft_check 目录
Microsoft_check/ 目录包含了完整的配置验证工具:
verify-config.php- 主要的验证工具,执行详细的配置验证test-config.php.template- 配置模板文件VALIDATION_GUIDE.md- 详细的验证指南和故障排除verify.sh- 快速验证脚本
🚀 快速验证
📋 验证项目
验证工具会检查以下 5 个方面:
- ✅ 基本配置 - 检查必需字段是否填写
- ✅ OAuth2 认证 - 验证客户端凭据是否正确
- ✅ API 连接 - 测试与 Microsoft Graph API 的连接
- ✅ 邮件权限 - 验证是否有邮件发送权限
- ✅ 邮件发送 - 发送测试邮件验证功能
🔒 安全特性
- ✅ 敏感信息保护 - 真实配置不会显示完整内容
- ✅ 本地验证 - 所有验证都在您的本地环境进行
- ✅ Git 忽略 - 配置文件已添加到 .gitignore
- ✅ 详细日志 - 提供详细的验证步骤和错误信息
详细说明请查看 Microsoft_check/README.md 文件。
安装
通过 Composer 安装
手动安装
- 下载扩展文件到
vendor/liwenyu/yii2-swiftmailer目录 - 在
composer.json中添加自动加载配置
配置
1. 在应用配置中注册组件
使用 Microsoft Graph API(推荐)
使用 SMTP 传输
2. Microsoft Azure 应用注册
在使用此扩展之前,您需要在 Microsoft Azure 门户中注册一个应用程序:
- 访问 Azure 门户
- 导航到 "Azure Active Directory" > "应用注册"
- 点击 "新注册"
- 填写应用信息:
- 名称:您的应用名称
- 支持的账户类型:选择适当的选项
- 重定向 URI:可选
- 注册完成后,记录以下信息:
- 应用程序(客户端)ID
- 目录(租户)ID
- 在 "证书和密码" 部分创建客户端密码
- 在 "API 权限" 部分添加以下权限:
Mail.Send(发送邮件)Mail.ReadWrite(读写邮件)User.Read(读取用户信息)
使用方法
基本邮件发送
使用消息对象发送邮件
批量发送邮件
使用 Graph API 服务
使用视图模板发送邮件
对应的视图文件 views/mail/welcome-email.php:
高级功能
邮件草稿
错误处理
配置选项
MicrosoftMailConfig 配置选项
| 选项 | 类型 | 必需 | 默认值 | 描述 |
|---|---|---|---|---|
clientId |
string | 是 | - | Azure 应用客户端 ID |
clientSecret |
string | 是 | - | Azure 应用客户端密钥 |
tenantId |
string | 是 | - | Azure 租户 ID |
userEmail |
string | 是 | - | 发送邮件的用户邮箱 |
graphApiUrl |
string | 否 | https://graph.microsoft.com/v1.0 |
Graph API 基础 URL |
authUrl |
string | 否 | https://login.microsoftonline.com |
OAuth2 认证 URL |
Mailer 配置选项
| 选项 | 类型 | 必需 | 默认值 | 描述 |
|---|---|---|---|---|
config |
MicrosoftMailConfig | 否 | - | Microsoft Graph API 配置对象(useSmtp=false 时必需) |
transport |
array | 否 | - | SMTP 传输配置(useSmtp=true 时必需) |
useSmtp |
bool | 否 | false | 是否使用 SMTP 传输 |
messageClass |
string | 否 | liwenyu\swiftmailer\Message |
消息类 |
debug |
bool | 否 | false | 是否启用调试模式 |
故障排除
常见问题
-
认证失败
- 检查
clientId、clientSecret和tenantId是否正确 - 确认 Azure 应用权限配置正确
- 检查客户端密钥是否过期
- 检查
-
邮件发送失败
- 确认
userEmail有发送邮件的权限 - 检查收件人邮箱地址格式是否正确
- 查看应用日志获取详细错误信息
- 确认
- API 调用失败
- 检查网络连接
- 确认 Graph API 权限配置
- 查看 Microsoft Graph API 状态页面
调试模式
启用调试模式可以查看详细的请求和响应信息:
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!
更新日志
1.0.0
- 初始版本发布
- 支持基本的邮件发送功能
- 支持 Microsoft Graph API 集成
- 支持邮件管理功能
- 完全兼容官方 yii2-swiftmailer 的所有功能
🎉 总结
本扩展 完全支持 官方 yii2-swiftmailer 的所有功能,并且提供了额外的 Microsoft Graph API 集成功能。您可以:
- 无缝替换 - 直接替换官方扩展,代码无需修改
- 功能增强 - 享受 Microsoft Graph API 的强大功能
- 向后兼容 - 保持与现有代码的完全兼容性
- 扩展能力 - 使用新增的批量发送和邮件管理功能
这使得本扩展成为官方 yii2-swiftmailer 的完美替代品,同时提供了更强大的 Microsoft 邮件服务集成能力。
All versions of yii2-swiftmailer with dependencies
PHP Build Version
Package Version
Requires
php Version
>=7.4
yiisoft/yii2 Version ~2.0.0
yiisoft/yii2-swiftmailer Version ~2.1.0
guzzlehttp/guzzle Version ^7.0
yiisoft/yii2 Version ~2.0.0
yiisoft/yii2-swiftmailer Version ~2.1.0
guzzlehttp/guzzle Version ^7.0
The package liwenyu/yii2-swiftmailer contains the following files
Loading the files please wait ...