Swift邮件程序会触发致命错误;

时间:2013-07-21 01:04:30

标签: php swiftmailer

  

致命错误:未捕获异常'Swift_TransportException'   消息'预期响应代码250但得到代码“530”,带有消息   “530 5.7.0必须先发出STARTTLS命令.fb9sm57232081wid.2 -   gsmtp“'in   C:\ XAMPP \ htdocs中\ LIB \类\雨燕\传输\ AbstractSmtpTransport.php:386   堆栈跟踪:#0   C:\ XAMPP \ htdocs中\ lib中\类\夫特\运输\ AbstractSmtpTransport.php(281):   Swift_Transport_AbstractSmtpTransport-> _assertResponseCode('530 5.7.0   必须......',数组)#1   C:\ XAMPP \ htdocs中\ lib中\类\夫特\运输\ EsmtpTransport.php(245):   Swift_Transport_AbstractSmtpTransport-> executeCommand('MAIL FROM:   executeCommand('MAIL FROM:_doMailFromCommand('sophie3394 @ gm ...')

     

4 C:\ xampp \ htdocs \ lib \ classes \ Swift \ Transport \ AbstractSmtpTransport.php(444):

     

Swift_Transport_AbstractSmt in   C:\ XAMPP \ htdocs中\ LIB \类\雨燕\传输\ 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 Stack   追踪:#0   C:\ XAMPP \ htdocs中\ lib中\类\夫特\运输\ StreamBuffer.php(64):   Swift_Transport_StreamBuffer-> _establishSocketConnection()#1   C:\ XAMPP \ htdocs中\ lib中\类\夫特\运输\ AbstractSmtpTransport.php(115):   Swift_Transport_StreamBuffer-> initialize(Array)#2   C:\ XAMPP \ htdocs中\ lib中\类\夫特\ Mailer.php(80):   Swift_Transport_AbstractSmtpTransport-> start()#3   C:\ XAMPP \ htdocs中\ Mail.php(26):   Swift_Mailer->发送(Object(Swift_Message))#4 {main}抛出   C:\ xampp \ htdocs \ lib \ classes \ Swift \ Transport \ StreamBuffer.php在线   259

2 个答案:

答案 0 :(得分:8)

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

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

这是25,ssl失踪了。 Swift_SmtpTransport根本没有使用加密,而且Gmail抱怨这一点。

答案 1 :(得分:1)

尝试:

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