dpromc/office365-mail

Laravel的Office365传输

维护者

详细信息

github.com/DPRMC/office365-mail

v3.0 2022-10-26 15:59 UTC

This package is auto-updated.

Last update: 2024-09-26 20:21:18 UTC


README

使用Microsoft Graph而不进行用户身份验证和SMTP发送电子邮件的Laravel框架的邮件驱动程序。只需在电子邮件的FROM头中指定电子邮件地址,此Office 365包将通过Microsoft Graph-Api发送电子邮件,并将发送的电子邮件放入发送者的收件箱“已发送”文件夹。

主要功能

  • 使用Microsoft Graph-Api而不是SMTP驱动程序发送电子邮件
  • 自动将电子邮件放入“已发送”文件夹中的发件人
  • 每个组织一个应用程序
  • 支持多个域名
  • 支持大型附件
  • 比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许可下。