motze92/office365-mail

用于Laravel的Office365传输

3.1.1 2023-05-16 15:12 UTC

README

用于Laravel框架的邮件驱动程序,可以通过Microsoft Graph发送邮件而无需用户认证和SMTP。只需在电子邮件的FROM头部中指定电子邮件地址,此Office 365包将通过Microsoft Graph-Api发送电子邮件,并将发送的电子邮件放入发件人的收件箱已发送文件夹。

关键特性

  • 使用Microsoft Graph-Api而不是SMTP驱动程序发送电子邮件
  • 自动将电子邮件放入FROM头部中用户发送文件夹
  • 每个组织一个应用程序
  • 支持多个域名
  • 支持大文件附件
  • 比Office-365 SMTP更快、更无错误

要使用此包,您必须在此处注册您的应用程序。更多信息在此

安装包

您可以使用Composer安装此包,运行composer require motze92/office365-mail,或编辑您的composer.json文件

Laravel 9

对于Laravel 9,请使用

{
  "require": {
    "motze92/office365-mail": "^3.0"
  }
}

Laravel 8

对于Laravel 8,请使用

{
  "require": {
    "motze92/office365-mail": "^2.0"
  }
}

Laravel < 7

对于Laravel 6及更早版本,请使用

{
  "require": {
    "motze92/office365-mail": "^1.0"
  }
}

使用以下命令发布配置文件

php  artisan  vendor:publish  --tag=office365mail

配置

使用以下说明获取所需的配置值

  • 使用您的Office365管理员用户打开Azure Active Directory-Portal)
  • 打开“管理”> 应用程序注册
  • 创建一个新的应用程序
  • 在应用程序中,在“管理”>“API权限”>“应用程序权限”下添加Mail.ReadWriteMail.Send权限(Microsoft Graph > 应用程序权限 > 邮件 > Mail.ReadWrite 和 Microsoft Graph > 应用程序权限 > 邮件 > Mail.Send)
  • 保存权限后,为您的组织应用管理员权限
  • 在“管理”>“证书和密钥”下创建一个新的客户端密钥,有效期为24个月,您稍后需要它用于.env - 变量OFFICE365MAIL_CLIENT_SECRET

当发送大于4MB的大附件时需要Mail.ReadWrite权限。

.env - 文件

Laravel < 7
MAIL_DRIVER=office365mail
OFFICE365MAIL_CLIENT_ID=YOUR-MS-GRAPH-CLIENT-ID
OFFICE365MAIL_TENANT=YOUR-MS-GRAPH-TENANT-ID
OFFICE365MAIL_CLIENT_SECRET=YOUR-MS-GRAPH-CLIENT-SECRET
Laravel > 7
MAIL_MAILER=office365mail
OFFICE365MAIL_CLIENT_ID=YOUR-MS-GRAPH-CLIENT-ID
OFFICE365MAIL_TENANT=YOUR-MS-GRAPH-TENANT-ID
OFFICE365MAIL_CLIENT_SECRET=YOUR-MS-GRAPH-CLIENT-SECRET

config/mail.php - 添加到邮件配置数组(https://github.com/laravel/laravel/blob/7.x/config/mail.php

'office365mail' => [
            'transport' => 'office365mail',
      ],

鸣谢

Moritz MairMatthias RadmüllerMerlin Mayr

版权和许可

版权(c)Moritz Mair。版权所有。在MIT许可下发布。