Swift Mailer触发致命错误;

6
致命错误:未捕获的异常'Swift_TransportException', 消息为“期望响应代码250,但得到代码“530”,消息为“530 5.7.0必须先发出STARTTLS命令。fb9sm57232081wid.2 - gsmtp”', 位于C:\xampp\htdocs\lib\classes\Swift\Transport\AbstractSmtpTransport.php的第386行 堆栈跟踪:#0 C:\xampp\htdocs\lib\classes\Swift\Transport\AbstractSmtpTransport.php(281): Swift_Transport_AbstractSmtpTransport -> _assertResponseCode('530 5.7.0 Must ...', Array) #1 C:\xampp\htdocs\lib\classes\Swift\Transport\EsmtpTransport.php(245): Swift_Transport_AbstractSmtpTransport -> executeCommand('MAIL FROM: executeCommand('MAIL FROM: _doMailFromCommand('sophie3394@gm...') 第444行C:\xampp\htdocs\lib\classes\Swift\Transport\AbstractSmtpTransport.php中的4: Swift_Transport_AbstractSmt在C:\xampp\htdocs\lib\classes\Swift\Transport\AbstractSmtpTransport.php的第386行上引起错误。 这是以下代码引起的错误:
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");

require_once 'lib/swift_required.php';

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25)
    ->setUsername('sophie3394@gmail.com')
    ->setPassword('xxxx');

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance('Test Subject')
    ->setFrom(array('sophie3394@gmail.com' => 'ABC'))
    ->setTo(array('sophie3394@gmail.com'))
    ->setBody('This is a test mail.');

$result = $mailer->send($message);

如何解决此错误?


致命错误:未捕获的异常'Swift_TransportException',消息为“无法与主机smtp.gmail.com建立连接[无法找到套接字传输”ssl“-您在配置PHP时是否忘记启用它?#1899472503]”位于C:\xampp\htdocs\lib\classes\Swift\Transport\StreamBuffer.php:259堆栈跟踪:#0 C:\xampp\htdocs\lib\classes\Swift\Transport\StreamBuffer.php(64):Swift_Transport_StreamBuffer->_establishSocketConnection() #1 C:\xampp\htdocs\lib\classes\Swift\Transport\AbstractSmtpTransport.php(115):Swift_Transport_StreamBuffer->initialize(Array) #2 C:\xampp\htdocs\lib\classes\Swift\Mailer.php(80):Swift_Transport_AbstractSmtpTransport->start() #3 C:\xampp\htdocs\Mail.php(26):Swift_Mailer->send(Object(Swift_Message)) #4 {main}抛出C:\xampp\htdocs\lib\classes\Swift\Transport\StreamBuffer.php中的第259行。

2个回答

10

更改您代码中的端口(即newInstance函数的第二个参数)并添加第三个参数'ssl'

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')

当时是25号,缺少SSL加密,Swift_SmtpTransport根本没有使用加密,而Gmail对此进行了抱怨。


1
尝试使用:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接