2014-11-20 61 views
2

我正在處理一個表單:一旦表單提交,我需要用Gmail帳戶發送一封郵件。我已經設置了SwiftMailer,似乎所有東西都已經正確設置,但沒有任何反應。 我已經設置了形式的「行動」,這個PHP文件:PHP - 使用SwiftMailer通過Gmail發送郵件的問題

<?php 
    require_once '/assets/swift-mailer/lib/swift_required.php'; 

    // variables 
    $visitor_email = $_POST['email']; 
    $visitor_phone = $_POST['phone']; 
    $visitor_page = $_POST['site']; 


    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
     ->setUsername('[email protected]') 
     ->setPassword('mypassword'); 

    $mailer = Swift_Mailer::newInstance($transport); 

    $message = Swift_Message::newInstance('New submission') 
     ->setFrom('[email protected]') 
     ->setTo('[email protected]') 
     ->setBody("New submission from this site: \n 
       $visitor_page \n 
       e-mail address: $visitor_email \n 
       phone number: $visitor_phone"); 

    $result = $mailer->send($message); 
    ?> 

我仔細檢查過PHP的版本,它在服務器的確定。 Php_openssl已啓用。 服務器運行正常。 html文件中的表單沒問題,它有「method = post」關聯。這些庫已正確放置在服務器文件夾中。我真的不明白什麼是錯的。

回答

3

也許有很多原因沒有發送郵件...你想檢查Apache的error_log和瀏覽器網絡..或者你可以在腳本中設置error_reporting(E_ALL)。也許這是谷歌smtp問題或其他。首先,你必須在問題得到澄清後才能做任何事情。如果你上傳錯誤,那麼任何人都可以幫助你。

你可以試試這個,但我不知道這對你有用與否

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls'); 

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl"); 
代替
相關問題