2014-12-03 206 views
0

我在我的網站上有一個簡單的會員管理。它基於php會話。用戶可以登錄的地方,更改密碼,申請新密碼,註銷。當我在我的電腦上執行這些功能時,所有這些功能都能正常工作請求新的密碼正常工作,郵件發送成功,郵件中收到新的密碼。PHPMailer,SMTP錯誤無法連接到SMTP主機

如果我嘗試請求移動(iPhone)中的新密碼(通過本地IP打開網站)我得到以下錯誤SMTP錯誤無法連接到SMTP主機郵件沒有發送,請重試!但是,當我在我的PC上做同樣的郵件發送成功。當我嘗試使用三星手機(S4)時,它有時會有效,有時會出錯。

mymail函數接收來自其他php文件中的調用的地址,主題,消息和地址。消息包含用戶名和新密碼,它是html代碼。

我的代碼解釋清楚你..

這是send_mail.php。從另一個php文件調用「mymail」函數。

<?php 
//include phpmailer 
require_once ('class.phpmailer.php'); 
function mymail($mto, $msub, $mbody, $mfrom) { 
$mail = new PHPMailer(); 
$mail -> IsSMTP(); 
$mail -> SMTPAuth = true; 
$mail -> SMTPSecure = "tls"; 

$mail -> Host = "email-smtp.us-west-2.amazonaws.com"; 
$mail -> Username = "Provided by Amazon SES"; 
$mail -> Password = "Provided by Amazon SES"; 

$mail -> SetFrom("$mfrom", ''); 
//from (verified email address) 
$mail -> Subject = "$msub"; 
$body = "$mbody"; 
$body = eregi_replace("[\]", '', $body); 
$mail -> MsgHTML($body); 
$mail -> AddAddress("$mto", ""); 

if ($mail -> Send()) { 
    return 1; 
} else { 
    echo "<br> Mail not sent, try again!"; 
    return 0; 
} 
} 
?> 

而且,是的,我正在向Amazon SES中已驗證的電子郵件發送郵件。我試圖編輯php代碼。從其他php文件中刪除了sha1函數,沒用。我認爲問題出在這個函數中。一般來說,php是服務器端,但是,當從移動設備或PC訪問時,php處理器的工作方式會有所不同嗎?我從昨天晚上開始嘗試。在谷歌做足夠的研究。提前致謝。

+1

這個問題有大量的重複。幾乎所有這些都可以通過[閱讀PHPMailer提供的文檔](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting)來解決。您還使用舊版本的PHPMailer。正如@sanki所說,你還應該設置'Port = 587'。 – Synchro 2014-12-03 14:45:47

+1

謝謝,我已更新,但問題不在於更新。這裏輸入的電子郵件區分大小寫。在我的手機輸入電子郵件的第一封信是資本。這是一個問題!只有當我更新它時才發現它。我從頭到尾記錄了日誌。然後我發現大小寫敏感是一個問題。順便說一句謝謝。 – sailesh 2014-12-03 18:34:02

回答

0

嘗試更新PHPMailer。這應該解決問題

1

嘗試增加端口號:

$ mail-> Port = 587; // amazon ses port number 

此外,您可以使用:

$mail->SMTPDebug = 1; 

要獲取調試信息。

這可能是由於PHP也缺乏SSL支持。它可以通過使用啓用:

extension=php_openssl.dll 
+0

試過了,沒有運氣! – sailesh 2014-12-03 15:02:48

0

我只是處理相同的sendmail php函數。有些你有兩點需要注意:

  1. 如Gmail某些服務器需要你,你允許登錄到您的帳戶不受信任的應用程序(在這種情況下,你的腳本)之前設置一些設置。你正在使用亞馬遜,但我相信他們在類似的安全設置上工作。

  2. 確保您擁有正確的主機和端口號。

  3. 確保您的表單始終傳遞正確的信息。如果一個字段沒有正確傳遞,電子郵件將不會被髮送。

  4. 手機,電腦或三星應該以相同的方式工作,因爲他們可以訪問相同的文件,並且對sendmail的瀏覽器支持可能是相同的。

+1

謝謝,它關於區分大小寫。在我的手機輸入電子郵件的第一封信是資本。這是一個問題! – sailesh 2014-12-03 18:37:48

0

我解決了它,它非常簡單。

這裏的電子郵件是區分大小寫的!試圖將首都信件從大寫改爲小寫。它的固定。感謝所有試圖回答問題的人!

相關問題