Laravel 5.5 尝试使用 PHP 的 mail() 发送邮件时出错:预期响应代码 250,但得到代码“550”

2024-03-13

我已将站点升级到 Laravel 5.5,突然我无法再发送邮件,因为它给了我以下错误:

Production.ERROR:预期响应代码 250,但得到代码“550”,其中 消息“550-未经过身份验证,请启用 SMTP 身份验证” 电子邮件软件和 550 检查登录凭据

我不知道为什么当我在我的帐户中指定了邮件时它会尝试使用 SMTP.env,它似乎忽略了:

MAIL_DRIVER=mail
MAIL_HOST=
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

这是 Laravel 5.5 的全新安装。我跑了composer dumpautoload and artisan cache:clear.

Help?

EDIT:

包含以下代码的简单 PHP 文件可以正常工作:

$to      = '[email protected] /cdn-cgi/l/email-protection';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected] /cdn-cgi/l/email-protection' . "\r\n" .
    'Reply-To: [email protected] /cdn-cgi/l/email-protection' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

exit();

Swiftmailer 6.0 不再支持邮件驱动程序

使用 laravel,您还更新了 swiftmailer,因此邮件驱动程序不再工作。

这是 swiftmailer 提交,它在 6.0 中删除了邮件驱动程序。 https://github.com/swiftmailer/swiftmailer/commit/b0bcf96b1f290bd6d7bbe7bf8ab83f0be1b632b1#diff-f8bfbeb2220b9d0bd022da9deeea890a

自 Swiftmailer 5.4.5 起,此提交已被弃用。 https://github.com/swiftmailer/swiftmailer/commit/905b0bca8acf359dad3dfc2bc298c56de922cd57#diff-f8bfbeb2220b9d0bd022da9deeea890a

这里有一个关于为什么它被删除的长讨论, https://github.com/swiftmailer/swiftmailer/issues/866 where 最有用的评论 https://github.com/swiftmailer/swiftmailer/issues/866#issuecomment-289291228说:

PHP's mail()功能不安全

第五个参数可被利用在大多数 Linux 系统上执行任意代码。这主要是因为 PHP 错误地转义了 shell 参数。您可以阅读完整的解释“为什么 mail() 在 PHP 中很危险”作者:RIPS https://blog.ripstech.com/2017/why-mail-is-dangerous-in-php/.

因此,一些应用程序存在安全问题,包括 Roundcube webmailer、MediaWiki、PHPMailer、ZendFramework、SquirrelMail 和 Swiftmailer。还有你的应用程序。因此,庆幸它已被删除并改用 SMTP。您通常可以简单地使用本地邮件服务器:

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

(您可能需要使用tls如果您的服务器不接受本地未加密的邮件,则进行加密。)

Laravel

Laravel 的主要问题是它的文档仍然提到了邮件驱动程序在 Laravel 5.7 文档中 https://laravel.com/docs/5.7/mail并且只在他们的5.5升级说明 https://laravel.com/docs/5.5/upgrade需要 swiftmailer 6.0,但这并不意味着您不能再使用邮件驱动程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5.5 尝试使用 PHP 的 mail() 发送邮件时出错:预期响应代码 250,但得到代码“550” 的相关文章

  • 使用操作系统用户名/密码在 PHP 中进行身份验证?

    我想知道是否有一种方法可以使用 PHP 或者可能是其他一些 CGI 但最好是 PHP 来使用其操作系统 在本例中为 Linux Debian 5 用户名和密码来验证用户 可能的 难的 谢谢 一般来说 这种东西是特定于操作系统的 并与现有的身
  • Php Define() 命名空间内的常量说明

    正如标题所示 我真的很想澄清这一点 我读过一些关于这个主题的文章和帖子 但有些东西不适合我 我会补充一点 我对 Php 有点陌生 好吧 这就是我想了解的 namespace Information define ROOT URL infor
  • Facebook“喜欢”按钮,喜欢另一个页面/URL

    我有一个链接列表 每个单独的页面上都有一个 喜欢 按钮来 喜欢 该页面 但我想要列表中每个链接旁边有一个 喜欢 按钮 该按钮会喜欢旁边链接的 URL 就像单击链接然后单击 喜欢 按钮一样 我该怎么做呢 要在每个单独的页面上创建按钮 我使用以
  • PHP:会话 |无法解码会话对象

    我尝试将电子商务功能添加到遗留项目中 因此我仍然需要旧的会话处理程序 我使用 PHP v7 1 14 和 Session2DB https github com voku session2db tree 4 0 0 https github
  • 图像上的文字

    是否可以在 php 中动态地将文本放置在图像上 然后将其发送到 rss feed 是的 可以使用GD http www php net gd函数或图像魔术师 http www php net imagemagick功能 具体取决于您的服务器
  • 如何在 PHP 中进行静态代码分析? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有PHP源文件的静态分析工具 二进制文件本身可以检查语法错误 但我正在寻找功能更多的东西 例如 未使用的变量赋值 未先初始化就分配到的
  • Laravel 资源策略始终为 false

    我试图允许用户在 Laravel 5 4 中查看自己的个人资料 用户策略 php public function view User authUser user return true 在 AuthServiceProvider php 中
  • 使用 PHP SDK 获取页面的最新 Facebook 帖子

    以下代码位于名为 facebook posts php 的文件内 我从索引文件中调用该文件 如下所示 然而 这段代码放到哪里 却没有任何反应 因此 成功和捕获错误都不会返回错误 正如我所见 我尝试过绝对网址 但这也不起作用 我隐藏了 api
  • Zend 框架 PDF 问题

    又是我 伙计们 我有一个小问题 Create new PDF pdf new Zend Pdf Add new page to the document page pdf gt newPage Zend Pdf Page SIZE A4 p
  • 捕获动态表中 HTML 元素的值

    我有从数据库生成的以下动态表
  • 通过另一个二维数组中的行过滤二维数组的行

    我有两个数组 我正在使用array diff assoc 以获得差异 但它总是返回common set结果中的行 它应该返回new q sets排 我的方法有什么问题吗 样本数据 array1 12 gt new q sets 11 gt
  • 如何找到 httpd.conf 文件所在的位置?

    如何找到 apache PHP 上 httpd conf 文件的路径 我不知道我的脚本是否会在Windows apache或Linux中运行 我需要知道在哪里可以找到这个文件 以便从那里找到参数 谢谢 我认为它没有接触 PHP 跑步http
  • 如何使用 jquery imgAreaSelect 用 php 裁剪图像?

    我正在使用以下 javascript 代码来实例化 jquery图像区域选择 http odyniec net projects imgareaselect 裁剪我的图像 document ready function ladybug im
  • 单击文件下载后,成功后使用 AJAX 重定向到另一个页面

    In my WordPress project my Download button containing a zip file which onClick should be downloaded So the HTML producin
  • Laravel:如何设置多对多关系的连接?

    我有模型 class User extends Model protected connection mysql public function areas return this gt belongsToMany Area class u
  • 下载表格 - 选择文件合并到 Zip 中

    我希望创建一个表单 用户可以从手册列表中进行选择 总共10个 他们可能只想下载 3 份小册子 或 6 份 或 1 份 或 9 份小册子 但想法是他们选择所需的小册子 然后用脚本组合一个包含所需小册子的 zip 文件 任何人都可以提出任何建议
  • 为 foreach() 提供的参数无效..Wordpress

    突然开始出现以下代码的错误 img src title 有时分类 贷款俱乐部 是空的 这可能是问题所在吗 如果是这样 有人可以指出我正确的代码吗 Add if之前的情况foreach
  • 在php中获取真实IP的问题

    我用它来获取真实IP 但我从 SERVER HTTP CLIENT IP 我仅从 SERVER REMOTE ADDR 但是我不需要代理的IP 我需要使用某些内网的计算机的真实IP 我能得到它吗 什么时候 SERVER HTTP CLIEN
  • cakephp 3.0 如何使用值而不是 id 填充选择字段

    我一直在寻找以前的答案 但我找到的答案与旧的 cakephp 版本有关 我有两个表 杂志 和 问题 其中存在关系 问题 属于 杂志 问题表如下所示 public function initialize array config this g
  • PHP 启动:运行单元测试时无法加载动态库

    当我尝试运行单元测试时 出现此错误 PHP 警告 PHP 启动 无法加载动态库 bz2 尝试过 xampp php ext bz2 找不到指定的模块 xampp php ext php bz2 dll 找不到指定的模块 在未知的第 0 行

随机推荐

  • 在Puppeteer中进行网页抓取时如何处理验证码?

    我正在使用 Puppeteer 进行网页抓取 我刚刚注意到 有时 由于我通过计算机进行的访问量很大 我尝试抓取的网站会要求输入验证码 验证码形式如下所示 因此 我需要有关如何处理此问题的帮助 自从我使用 Express 和 EJS 将值发送
  • 使用 iframe 时,Angular 2 应用程序组件 ngOnInit 被调用两次

    我正在开发一个 Angular 2 应用程序 该应用程序将通过其他网站上的 iframe 进行交付 在测试时我注意到当我加载应用程序时应用程序组件ngOnInit 函数被调用两次 我觉得这很奇怪 因为当我 自己 测试应用程序时 即不是通过
  • 如何使用 javascript 提取并更改 url 路径?

    我正在尝试提取部分 url 并使用 javascript 将其替换为自定义文本 例如 我想获取当前的 url 例如 mydomain com url part to change some other stuff 然后更改要插入的 url
  • 如何将对象文字作为聚合物属性传递

    为了单独测试我的一些聚合物自定义元素 我希望能够传入 js 对象文字来获取通常来自父元素的一些属性 我很难弄清楚如何做到这一点 请参阅此示例代码 如果它按照我希望的方式工作 它会显示一个 1 和一个 2 彼此相邻 但它不起作用
  • 如何在可内容编辑的 DIV 中查找光标位置?

    我正在为内容可编辑 DIV 编写一个自动完成器 需要在文本框中呈现 html 内容 因此更喜欢使用 contenteditable DIV 而不是 TEXTAREA 现在我需要在 DIV 中有 keyup keydown click 事件时
  • 对于自定义表单组件,是否可以使用 DefaultValueAccessor 而不是 ControlValueAccessor?

    我需要能够使用formControlName我的自定义组件的指令 我一直在阅读有关实施的多个SO问题ControlValueAccessor对于一个子组件来说 这一切看起来都非常脆弱 很多例子都在转变 div or span 元素转换为表单
  • ReactforwardRef 似乎不适用于 bootstrap Overlay

    根据React Bootstrap 覆盖文档 https react bootstrap github io components overlays 覆盖的目标应该是the element the overlay is positioned
  • Firefox 中未定义 Intl

    我有以下java脚本代码 它在chrome中运行良好 但在firefox和IE中运行失败 FF 的错误消息是 ReferenceError Intl is not Define IE 的错误消息是 SCRIPT5009 Intl 未定义 我
  • gettext,如何处理同音异义词?

    使用 gettext 单值 echo gettext Hello world n Plurals printf ngettext d comment d comments n n 英文同音字 echo gettext Letter as i
  • 交互运行 cypress 命令

    是否可以打开浏览器并交互运行 cypress 测试命令 类似于使用scriptsChrome 开发者工具中的选项卡 每次启动浏览器运行测试花费的时间太长 我理解这种痛苦 但据我所知 赛普拉斯的自动扫描功能会在您更新测试时 重新运行 测试 换
  • 如何使用 python 跳过数据集数据类型错误的行

    一直致力于数据集清理和处理数据以进行进一步分析 我使用了不同的清理脚本 每当数据集列之间出现任何不需要的 异常数据时 我的脚本就会中止 脚本执行会卡住并且其余数据不会得到处理 我尝试使用的脚本 import pandas as pd imp
  • 如何在 git-commit 上的 vim 中启用拼写检查

    我正在尝试在 Vim 中启用该拼写 以防编辑 git 提交消息 文件名是固定的 因此 autocmd 没有帮助 我在最初的消息中放置了一个模型行 但是ftpplugin gitcommit vim禁用模型行 为 git commit 情况自
  • 将数组作为结构体访问 *

    这是其中之一我认为这应该有效 但最好检查一下问题 它在我的机器上编译并运行良好 这是否保证达到我的预期 即允许我访问数组的前几个元素 并保证结构的布局 对齐 填充等与数组相同 struct thingStruct int a int b i
  • 使用 JPA 的 select 子句中的 Suqueries

    我需要使用 Apache Openjpa 2 在 select 子句中执行子查询 JPA 是否支持 SELECT 子句中的子查询 我的查询是这样的 SELECT t date t value SELECT COUNT DISTINCT t2
  • Signalr - 无法读取服务器上的查询字符串

    我在这里要疯了 我完成了 chatHub 教程 一切正常 我连接到服务器 我可以向每个客户广播一条消息 然后我尝试添加查询字符串 因为我想获得有关我的用户的一些信息 因为许多用户可以在同一会话中连接 这是我的 JavaScript func
  • 是否可以制作交互式 Rake 任务?

    我想运行一个要求用户输入的 Rake 任务 我知道我可以在命令行上提供输入 但我想询问用户是否sure他们希望继续执行特定操作 以防错误输入提供给 Rake 任务的值之一 像这样的东西可能会起作用 task action do STDOUT
  • 使用 Bash 变量代替文件作为可执行文件的输入

    我有一个可执行文件 其使用方式如下 executable v i inputFile txt o outputFile eps 为了提高效率 我想使用 Bash 变量代替输入文件 所以 我想做如下的事情 executable v i inp
  • jQuery 将 Google Adsense 附加到 div

    我遇到了 google adsense 的问题 它在我的 jQuery 之前加载并杀死了我的代码 所以我想我应该尝试使用文档准备功能将 Google Adsense javascript 附加到适当的 div 这是我尝试的代码写
  • 如何更改 TYPO3 中的页眉布局(添加一些换行 div)

    您好 我需要更改 TYPO3 中的标题布局 下图 我正在使用流体模板系统 我还找到了可以更改它的 html 文件 该文件的原始路径是 typo3 src 7 6 16 typo3 sysext fluid styled content 资源
  • Laravel 5.5 尝试使用 PHP 的 mail() 发送邮件时出错:预期响应代码 250,但得到代码“550”

    我已将站点升级到 Laravel 5 5 突然我无法再发送邮件 因为它给了我以下错误 Production ERROR 预期响应代码 250 但得到代码 550 其中 消息 550 未经过身份验证 请启用 SMTP 身份验证 电子邮件软件和