2016-08-02 89 views
0

電子郵件發送我已經上傳我的託管服務器上的源不工作後,我的代碼如下:發送電子郵件使用CodeIgnitor從託管服務器

function sendMail($code,$email) 
    { 
     $config = Array(  
      'protocol' => 'smtp', 
      'smtp_host' => 'ssl://smtp.gmail.com', 
      'smtp_port' => 465, 
      'smtp_user' => '[email protected]', 
      'smtp_pass' => 'something', 
      'smtp_timeout' => '4', 
      'mailtype' => 'text', 
      'charset' => 'utf-8'//'iso-8859-1' 
     ); 

     $message = 'Your Verification code is :'.$code; 
     $this->load->library('email',$config); 
     $this->email->set_newline("\r\n"); 
     $this->email->from('[email protected]',"iSec Community"); // change it to yours 
     $this->email->to($email);// change it to yours 
     $this->email->subject('Activate your account'); 
     $this->email->message($message); 
     if($this->email->send()) 
     { 
      return true; 
     } 
     else 
     { 
     show_error($this->email->print_debugger()); 
      return false; 
     } 

    } 

我試圖使這項工作,一些工作,但他們發送垃圾郵件不是在收件箱中,有的根本不能工作:

1 - 改變'protocol' => 'sendmail'[失敗]

2 - 改變'smtp_host' => 'smtp.gmail.com''smtp_host' => 'ssl://smtp.gmail.com''smtp_host' => 'ssl://smtp.googlemail.com''smtp_host' => 'smtp.googlemail.com'所有[失敗]

3 - 改變'smtp_port' => 587'smtp_port' => 25[失敗]

4 - 在我的谷歌電子郵件我已經允許Less Secure AppsDisabled 2 Step Verification[失敗]

5 - 評論/刪除$config變量[SUCCESS]但電子郵件被髮送到垃圾郵件與下面用黃色背景 This message may not have been sent by: [email protected]

警告請建議我我應該怎麼做,我想,現在超過10個小時,現在發送電子郵件。

+0

沒有什麼,我的文件在現場託管的服務器上,在xampp代碼中工作正常,但現在不是 –

+0

確定只有第一個字母大寫,例如'Example。 php'和'class Example使用CI3版本擴展CI_Controller {}'這是必須的。它可能是你的提供者,可能是這個問題? – user4419336

+0

yup @ wolfgang1983這是我的類名看起來像'User extends REST_Controller' –

回答

0

可能是您的服務器不允許與Gmail服務器通信?這可能是其中一種可能性。如果不是這種情況,那麼「show_error($ this-> email-> print_debugger())」的輸出是什麼?你必須從這一行獲得一些輸出。

0

從本地主機發送電子郵件:

1.如果你從本地主機SMTP發送電子郵件,即評論$配置陣列,您的郵件將始終被重定向到垃圾郵件,除非

你已經配置好服務器郵件服務器(正確安裝Postfix/Sendmail並在您的域的DNS區域中配置MX,SPF和DKIM記錄)。

2.如果您正在使用Gmail作爲SMTP中繼用於發送電子郵件:

參見:Sending email with gmail smtp with codeigniter email library

只要確保端口465或587在防火牆配置中打開。

注:我個人認爲,這不是一個好的做法,總是有一定的侷限性。例如:發件人地址將始終是以用戶名SMTP配置使用的地址。

我會推薦安裝並嘗試免費的第三方SMTP服務,如SparkPost,Sendgrid和mandrill,並在您的代碼中使用它們。

0

的問題是非常簡單的

  1. 雖然在通過谷歌提交表單的最佳實踐工作是回調直接SMTP服務器,而不是ssl://它永遠不會這樣的工作。

  2. Gmail使用TLS發送帶有PORT 587465的郵件。它絕不會通過使用465的SSL發送郵件。

我也知道沒有設置驗證到TLS。

另請確保在Gmail帳戶設置下如果將其關閉,則訪問不太安全的應用程序將被關閉。

我給出的答案是基於技術原因。

相關問題