【问题标题】:SMTP server response: 530 5.7.57SMTP 服务器响应:530 5.7.57
【发布时间】:2017-07-12 08:57:41
【问题描述】:

我正在尝试使用 php 发送邮件。我在互联网上寻找解决方案,我找到了不同的方法,但没有一个帮助我。当我来到应该发送邮件的代码时,我收到以下错误:

mail():SMTP 服务器响应:530 5.7.57 SMTP;在 MAIL FROM [AM4PR08CA0065.eurprd08.prod.outlook.com]”期间,客户端未通过身份验证发送匿名邮件”

邮件电话:

$mailAdr = "name@company.ch";
$subject = "subject";
$msg = "message!";
$header = 'FROM: My WebSite <name@company.ch>';
mail($mailAdr, $subject, $msg, $header);

我设置了正确的 smtp 和端口。谁能告诉我我做错了什么?

【问题讨论】:

  • 错误信息说得很清楚:SMTP 服务器不接受来自未经身份验证的用户的电子邮件。您需要在该服务器上拥有一个电子邮件帐户(同一台服务器通常提供 IMAP 或 POP3;使用与从服务器读取电子邮件相同的用户名和密码)。但是,无法使用标准 PHP 函数 mail() 通过此服务器发送电子邮件。您需要使用邮件发送库(SwiftMailerPHPMailer f.e.)
  • 您推荐哪个邮件发送库? @axiac
  • @NiZelooer 使用 Swiftmailer... 但这并不能解决您的问题。
  • 好的,我试试。感谢您提供信息。
  • 为什么不@Stony?

标签: php email


【解决方案1】:

我认为您必须添加代码中缺少的 FROM 标头。

<?php
$header = 'From: My Website <info@example.com>' . "\r\n";

mail($empfaenger, $betreff, $nachricht, $header);
?>

【讨论】:

  • 没有丢失我在php.ini中设置的
  • 那么请贴出条目或者用标题测试一下。通常你应该在邮件请求中设置标题。
  • 为什么你在=之前做了点?以及为什么要在末尾添加"\r\n"
  • 在多于一个标题的示例中;)您需要行面包,标题由该换行符分隔。
  • 啊,好吧,在我的例子中,我只有一个标题,所以我不需要\r\n
猜你喜欢
  • 2019-09-02
  • 2020-06-14
  • 2011-07-13
  • 1970-01-01
  • 2014-06-27
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
相关资源
最近更新 更多