2013-09-29 67 views
0

我試過了所有的東西,我不知道如何解決這個問題,所以我使用這個Swift Mailer庫發送確認郵件。因此,這裏是從我的index.php嘗試使用Swift Mailer發送電子郵件時出現PHP錯誤

if($confirm){ 

      //include the swift class 
      include_once 'inc/php/swift/swift_required.php'; 

      //put info into an array to send to the function 
      $info = array(
       'username' => $username, 
       'email' => $email, 
       'key' => $key); 

      //send the email 
      if(send_email($info)){ 

       //email sent 
       $action['result'] = 'success'; 
       array_push($text,'Thanks for signing up. Please check your email for confirmation!'); 

      }else{ 

       $action['result'] = 'error'; 
       array_push($text,'Could not send confirm email'); 

      } 

     } 

的代碼和我SEND_EMAIL功能是在另一個PHP文件的functions.php

//send the welcome letter 
function send_email($info){ 

    //format each email 
    $body = format_email($info,'html'); 
    $body_plain_txt = format_email($info,'txt'); 
     //setup the mailer 
    $transport = Swift_MailTransport::newInstance(smtp.gmail.com,465,ssl) 
     ->setUsername('my email here') 
      ->setPassword('my password'); 

    $mailer = Swift_Mailer::newInstance($transport); 
    $message = Swift_Message::newInstance(); 
    $message ->setSubject('Welcome to Site Name'); 
    $message ->setFrom(array('somedomain.com' => 'somethinghere')); 
    $message ->setTo(array($info['email'] => $info['username'])); 

    $message ->setBody($body_plain_txt); 
    $message ->addPart($body, 'text/html'); 

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

    return $result; 

} 

,我正的錯誤是

Fatal error: Call to undefined method Swift_MailTransport::setUsername() in /srv/disk7/something/www/something/signup/inc/php/functions.php on line 31

我怎樣才能解決這個問題?我是一名PHP初學者。

回答

-1

看起來你還沒有加入Swift Mail類。

+0

你是什麼意思? – user2802518

0

我猜Swift_MailTransport::newInstance(smtp.gmail.com,465,ssl)無法創建預期的實例。

順便說一句,不應該是Swift_MailTransport::newInstance('smtp.gmail.com',465,'ssl')即smtp.gmail.com和ssl用引號)?

+0

不,它必須在「」 – user2802518

+0

同樣的事情。我的問題依然存在。 – geomagas

+0

請介意你的語言!不是每個人都和你一樣「心情」! – geomagas

0

Swift_MailTransport,從文檔...

...sends messages by delegating to PHP's internal mail() function.

In my experience -- and others' -- the mail() function is not particularly predictable, or helpful.

的另一件事情它沒有是setUsernamesetPassword方法。

我說你想用Swift_SmtpTransport

一件事;正如別人指出的那樣,你的字符串參數應該被引用,即

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