我想使用Swift梅勒發送附件的電子郵件。電子郵件沒有發送。我對PHP相當陌生,所以這可能是一個簡單的問題,但我無法弄清楚。代碼:Swift梅勒沒有發送電子郵件
<?php
require_once 'swift/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465)
->setUsername('my gmail address')
->setPassword('my gmail password')
;
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject('subject')
->setFrom(array('[email protected]' => 'John Doe'))
->setTo(array('[email protected]' => 'Jane Doe'))
->setBody('body')
->attach(Swift_Attachment::fromPath('image.png'))
;
echo('test 1');
$numSent = $mailer->send($message);
echo('test 2');
printf("Sent %d messages\n", $numSent);
if ($mailer->send($message))
{
echo "Sent\n";
}
else {
echo "Failed\n";
}
?>
swift_required.php被成功包含在內。我的測試1回聲運行,但測試2回聲永遠不會。這讓我認爲問題存在於$ numSent變量中。當然,這個問題仍然非常廣泛,但希望可以稍微縮小一些。此外,沒有低於$ numSent工作的功能,所以它並沒有告訴我是否我的電子郵件被髮送或沒有。
想通了,原來你需要使用「TLS://smtp.gmail.com」。
使用[在Swiftmailer文檔中提供的調試信息(http://swiftmailer.org/docs/sending.html#finding-out-rejected-addresses)以及[Swiftmailer記錄器插件( http://swiftmailer.org/docs/plugins.html#logger-plugin)幫助您縮小問題範圍。總而言之,你需要學會有效地調試代碼(從你寫的東西,好像你已經做了自己沒有調試工作的話)。 – esqew