2014-09-24 14 views
0

我使用PHPMailer鏈接到我的Gmail帳戶。PHPMailer沒有發送正確的'from'地址

我需要自動加載器,創建一個函數來處理髮送郵件,然後觸發函數來測試。這一切看起來是這樣的:

require "PHPMailer/PHPMailerAutoload.php"; 

function sendMail($to, $subject, $body, $from){ 

    //init PHPMailer 
    $mail = new PHPMailer; 
    $mail->isSMTP(); 
    $mail->SMTPAuth = true; 
    $mail->SMTPSecure = "tls"; 
    $mail->Port = 587; 
    $mail->isHTML(true); 

    //connection settings 
    $mail->Host = "smtp.gmail.com"; 
    $mail->Username = "[email protected]"; 
    $mail->Password = "xxxxxxxx"; 

    //addresses 
    $mail->addAddress($to); 
    $mail->setFrom($from); 

    //create email 
    $mail->Subject = $subject; 
    $mail->Body = $body; 

    //send email 
    $mail->send(); 
} 

//sendMail(to, subject, body, from) 
sendMail("[email protected]", "Test Subject", "Test body", "[email protected]"); 

這將用正確的主題和正文,對地方的電子郵件,但它是從「地址忽略和電子郵件總是說,它來自Gmail帳戶,通過它該電子郵件已通過。無論如何配置這個工作?

注意我明顯地忽略了上述代碼中的正確帳戶詳細信息和真實地址。

+0

我發誓我不是一個雞巴但是,你真的*需要phpMailer嗎?我問這是因爲PHP有​​一個內置的[mail()](http://pt2.php.net/manual/en/function.mail.php)函數,它可以創造奇蹟*如果你不需要附件和什麼。它有一定的侷限性,正如phpmailer docus所述,但是如果你不需要使用手提鑽來殺死一隻蒼蠅,爲什麼要使用它呢? (我明明假設這是一個小蒼蠅) – MoshMage 2014-09-24 08:53:45

+0

@MoshMage我正在使用Microsoft Azure服務器。 PHP郵件()不起作用。這就是在這裏使用SMTP的關鍵。 – Coop 2014-09-24 08:59:55

+0

卡。讓我嘗試閱讀他們的文檔,並檢查我是否可以幫助 – MoshMage 2014-09-24 09:08:14

回答

3

這很簡單:默認情況下,Gmail不允許您將發件人地址設置爲非Gmail地址,除非他們正在處理您的域;他們會將您的Gmail地址重寫爲您的Gmail地址,完全如您所見。這與PHPMailer和PHP郵件功能無關。

有規定從地址(而不是整個域)進行特定設置,但必須事先進行設置;你不能只從隨機地址發送。見this answer

+1

我沒有注意到他正試圖從不同的地址發送郵件。我的錯。好回答兄弟:) – 2014-09-24 09:43:57

+0

謝謝,這證實了我在腦海中得出的結論。 – Coop 2014-09-24 09:44:15

-1

變化下面提到部分:

$mail->addAddress($to); 
$mail->setFrom($from); 

TO

$mail->addAddress($to); 
$mail->From = $from; 
$mail->FromName = $from_name; 

希望它會工作。

問候。

+0

謝謝,但這不工作。它仍然來自同一個電子郵件地址,'從名稱'現在顯示爲'root用戶'。 – Coop 2014-09-24 08:40:54

+0

兄弟,您可以按照鏈接https://github.com/PHPMailer/PHPMailer遵循PHPMailer的慣例。它明確寫在這裏。讓我知道你是否需要任何幫助。 :) – 2014-09-24 09:13:34

+0

我想如果你在下面使用它會幫助你。 $ mail-> From = $ sender_email; $ mail-> FromName = $ sender_name; $ mail-> addAddress($ receiver_email,$ receiver_name); – 2014-09-24 09:16:23

相關問題