【问题标题】:Error 501 by sending mail using Swift mailer使用 Swift 邮件程序发送邮件时出现错误 501
【发布时间】:2012-02-15 07:16:06
【问题描述】:
<?php

  require_once '../plugin/swift/lib/swift_required.php';

  // Create the Transport
  $transport = Swift_SmtpTransport::newInstance('pod51003.outlook.com',587,'tls')
    ->setUsername('user@connect.polyu.hk')
    ->setPassword('pw')
    ;

  // Create the Mailer using your created Transport
  $mailer = Swift_Mailer::newInstance($transport);

  // Create a message
  $message = Swift_Message::newInstance('Wonderful Subject')
    ->setFrom(array('john@doe.com' => 'John Doe'))
    ->setTo(array('foodil@hotmail.com', 'foodil@yahoo.com.hk' => 'A name'))
    ->setBody('Here is the message itself')
    ;

  // Send the message
  $result = $mailer->send($message);

  printf("Sent %d messages\n", $result);

?>

结果:

致命错误:未捕获的异常“Swift_TransportException” 带有消息“预期响应代码 250 但得到代码“501”,带有消息“501 5.5.4 Invalid domain name”' 在 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\AbstractSmtpTransport.php:422 堆栈跟踪: #0 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\AbstractSmtpTransport.php(306): Swift_Transport_AbstractSmtpTransport->_assertResponseCode('501 5.5.4 Inval...', Array) #1 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\EsmtpTransport.php(224): Swift_Transport_AbstractSmtpTransport->executeCommand('HELO [::1]??', Array, Array) #2 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\AbstractSmtpTransport.php(323): Swift_Transport_EsmtpTransport->executeCommand('HELO [::1]??', Array) #3 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\EsmtpTransport.php(272): Swift_Transport_AbstractSmtpTransport->_doHeloCommand() #4 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\AbstractSmtpTransport.php(124) 在 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport \AbstractSmtpTransport.php 第 422 行

实际上我是直接按照教程进行的,那是我在代码中遗漏的任何内容吗? SMTP 服务器信息有效。

外部 SMTP 设置:
服务器名称:pod51003.outlook.com - 您还可以查看下面关于如何确定服务器名称的说明
端口:587
加密方式:TLS

添加行后:还有一个错误:

警告:stream_socket_enable_crypto() [streams.crypto]:此流不支持第 102 行 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\StreamBuffer.php 中的 SSL/加密 致命错误:未捕获的异常“Swift_TransportException” 带有消息“无法使用 TLS 加密连接” 在 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\EsmtpTransport.php:283 堆栈跟踪: #0 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\AbstractSmtpTransport.php(124): Swift_Transport_EsmtpTransport->_doHeloCommand() #1 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #2 C:\xampp\htdocs\fyp\mail\send.php(26): Swift_Mailer->send(Object(Swift_Message)) #3 {main} 在第 283 行的 C:\xampp\htdocs\fyp\plugin\swift\lib\classes\Swift\Transport\EsmtpTransport.php 中抛出

【问题讨论】:

    标签: php


    【解决方案1】:

    尝试在此处添加此行,如图所示:

    // Create the Transport
    $transport = Swift_SmtpTransport::newInstance('pod51003.outlook.com',587,'tls')
    ->setUsername('user@connect.polyu.hk')
    ->setPassword('pw')
    ;
    
    // ADD THIS LINE
    $transport->setLocalDomain('[127.0.0.1]');
    
    // Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);
    

    根据您对 HELO 命令的响应,我猜您的 SMTP 服务器不喜欢/不理解 IPv6。

    【讨论】:

    • 添加行后又报错,请看一下,非常感谢
    • 还有550的问题 5.7.1 Client没有权限作为这个发件人发送
    • 我猜这是因为您使用的From: 电子邮件地址与您用于对 SMTP 服务器进行身份验证的用户名/密码关联的电子邮件地址不匹配。尝试设置Reply-To: 地址并作为您自己的帐户发送。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2014-08-16
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 2015-04-22
    • 2015-03-20
    相关资源
    最近更新 更多