2014-11-20 60 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"); 
代替
相关问题