2014-10-29 91 views
0

我試圖使用Gmail的SMTP服務器在本地主機上使用Fat Free Framework發送電子郵件,但它不發送郵件。我也試圖使用F3 SMTP日誌記錄工具,但它什麼都不返回。使用Fat Free Framework和SMTP發送電子郵件

echo的輸出是:「電子郵件結果:未發送,mylog:,標題:不存在」。

我正在使用最新版本的F3,在本地主機上使用Apache 2.2和PHP 5.4。

$smtp = new SMTP ('smtp.gmail.com', 465, 'SSL', '[email protected]', 'mypass'); 

$smtp->set('From', '"Joe Bloggs" <[email protected]>'); 
$smtp->set('To', '<[email protected]>'); 
$smtp->set('Subject', 'Sent with the F3 SMTP plug-in'); 
$smtp->set('Errors-to', '<[email protected]>'); 

$message = 'it works'; 

$sent = $smtp->send($message, TRUE); 

$mylog = $smtp->log(); 

$sentText = 'not sent'; 

$headerText = 'does not exist'; 

if ($sent) 
{ 
    $sentText = 'was sent'; 
} 

if ($smtp->exists('Date')) 
{ 
    $headerText = 'exists'; 
} 

echo "email result: " . $sentText . ",mylog: " . $mylog . ", header: " . $headerText; 
+0

您是否嘗試了另一個SMTP服務器?我很確定它不會與F3一起使用,因爲Gmail需要STARTTLS而不支持由F3墮落。 – sascha 2014-10-29 17:02:17

+0

現在只是測試自己。它適用於465上的SSL和587端口上的TLS,但我必須激活https://support.google.com/accounts/answer/6010255上描述的「允許不太安全的應用程序」選項。 – ikkez 2014-10-29 17:22:27

+0

雖然我真的不知道Google爲什麼阻止SSL/TLS,或者SMTP類中缺少這些內容。但STARTTLS在這裏支持 – ikkez 2014-10-29 17:23:14

回答

0

感謝所有有用的意見。

我試圖PHPMailer的是張學友建議和(驚人的)然後我接到了PHP的錯誤信息,告訴我到底是什麼問題是

錯誤消息是「SMTP錯誤:無法連接到服務器:無法找到套接字傳輸」ssl「 - 您忘記配置PHP時啓用它嗎? 「

所以我去了我的」php.ini「並搜索了SSL並找到了被註釋掉的」extension = php_openssl.dll「這一行,我取消註釋了它,重新啓動Apache和PHPMailer,然後開始工作 - 電子郵件被髮送。

我回到不含脂肪和現在的工作呢!(不改變張貼在問題的代碼)。可惜的是無脂肪的日誌記錄沒有給我任何提示。

我用PHPMailer的這個代碼:Example code for using PHPMailer on localhost (Windows)

0

我想你可能需要的PHPMailer更多的測試... 在smtp.php從FLAT FREE代碼時,Gmail似乎工作:(但PHPMail它的官方(示例代碼中他們這樣做,我用它和它的工作)。