2016-08-12 88 views
1
<?php 

require ("PHPMailer-master/PHPMailerAutoload.php"); 

$mail = new PHPMailer; 

if(isset($_POST['submit'])) 
{ 
    $email_query = "select email1,email2 from tbl_contacts where id = '1'"; 
    $query_result = mysql_query($email_query); 
    $value = mysql_fetch_array($query_result); 
    $primary_email = $value['email1']; 
    $CC = $value['email2']; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 
    $mail->IsSendmail();          // Set mailer to use SMTP 
    $mail->Host = "smtp.google.com"; // Specify main and backup SMTP servers 
    $mail->SMTPAuth = true;        // Enable SMTP authentication 
    $mail->Username = $email;     // SMTP username 
    //$mail->Password = 'password';       // SMTP password 
    $mail->SMTPSecure = 'ssl';       // Enable TLS encryption, `ssl` also accepted 
    $mail->Port = 465;         // TCP port to connect to 

    $mail->setFrom($email, $name); 
    //$mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
    $mail->addAddress($primary_email);    // Name is optional 
    $mail->addReplyTo($email, ''); 
    $mail->addCC($CC); 
    //$mail->addBCC('[email protected]'); 

    //$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
    $mail->isHTML(true);         // Set email format to HTML 

    $mail->Subject = $subject; 
    $mail->Body = $message; 
    $mail->AltBody = $message; 

    if(!$mail->send()) { 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
    } else { 
     echo 'Message has been sent'; 
     redirect('/contact.php?message=Your+Message+Has+Been+Sent!', 'location'); 
    } 
} 
?> 

我使用Gmail的SMTP,如果我發送一封電子郵件,Gmail帳戶它工作正常,但是當我發送一封電子郵件,一個雅虎賬號就顯示發送電子郵件成功的消息,但消息沒有得到傳遞。是否有可能使用Gmail'smtp從雅虎的電子郵件發送電子郵件?如果是,我該怎麼辦?如果不是,我該如何解決這個問題?從雅虎的電子郵件地址,可以使用Gmail的SMTP在PHPMailer的

+1

這是不可能的。電子郵件標頭可由用戶編輯。您可以基本上從您喜歡的任何電子郵件地址發送電子郵件。從技術上講,你甚至可以發送來自任何地址的電子郵件。 GMail不希望他們的用戶濫用此功能,所以他們需要您提供GMail憑據。這樣他們可以確保你只能從你的GMail地址發送郵件。你需要自己的郵件服務器來繞過這個問題,或者檢查雅虎是否有自己的SMTP設置並使用它們。 – icecub

回答

0

一般來說,

可以避免聲明不正確的標識。

這可能是技術方面的可能;然而在2016年,大多數電子郵件系統都傾向於通過使用multip來保護自己。技術 - 如SPF,DKIM和DMARC,並且既用於發送和評估收到的電子郵件。

如果對於越來越多的電子郵件系統和ESP來說這是真的,不難想象像雅虎,GMAIL和其他ESP巨頭們在做什麼來表達對不正確聲明身份的仇恨(標記爲垃圾郵件,拒絕SMTP握手級別,默默丟棄......)。


在你的情況顯示成功的消息僅意味着你的郵件收到MTA側進行進一步的處理,關於它沒有什麼前途。