2012-10-17 140 views
2

我正嘗試在codeigniter中發送電子郵件,並且這是我正在使用的一段代碼。第一個評論的代碼打印錯誤,說我的應用程序沒有配置發送電子郵件。在codeigniter中通過Google郵件發送電子郵件

使用Gmail的第二個未註釋的代碼工作正常,但它是顯示我的電子郵件和密碼的要求。所以我有兩個問題:如何在不提密碼的情況下做我想做的事情。這在軟件開發中可以接受用戶密碼。由於

/*$config = array(); 
      $config['useragent']   = "CodeIgniter"; 
      $config['mailpath']   = "/usr/bin/sendmail"; // or "/usr/sbin/sendmail" 
      $config['protocol']   = "mail"; 
      $config['smtp_host']   = "localhost"; 
      $config['smtp_port']   = "25"; 
      $config['mailtype'] = 'text'; 
      $config['charset'] = 'utf-8'; 
      $config['newline'] = "\r\n"; 
      $config['wordwrap'] = TRUE; 
      */ 
    $config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'mypass', 
     'mailtype' => 'text', 
     'starttls' => true, 
     'newline' => "\r\n" 
     ); 

     $this->load->library('email',$config); 

     $email=$this->input->post("email"); 
     $username=$this->input->post("username"); 
     $this->email->to("[email protected],[email protected],[email protected]"); 
     $this->email->subject("Hello world"); 
     $this->email->subject("Hello world from local pc"); 
     $this->email->send(); 
     $data['msg']=$this->email->print_debugger(); 
+0

您可以爲此創建一個新的Gmail帳戶:)。 –

回答

0

1)您不能發送電子郵件,而不在smtp.googlemail使用ID和密碼發送電子郵件。原因很簡單。 smtp使用您的Gmail帳戶發送電子郵件。所以ID和密碼是必需的。如果您不想使用您的Gmail帳戶,則必須有郵件服務器才能發送電子郵件。

2)即將到來的可接受性,使用谷歌smtp罰款時,你不必共享包含密碼等機密數據的文件。

+0

感謝您的回答。由於我們正在團隊中開發項目,所以我感到困惑,我無法找到任何方式避免向我們一起工作的所有開發人員公開。 – user1718215

+0

@ user1718215如果你在一家公司工作,那麼它會有一些虛擬的電子郵件帳戶完全是爲了這個目的。創建一個新的Gmail帳戶,如果你沒有他們.. –

-1

第一個代碼不工作,因爲你沒有電子郵件服務器上的本地主機...

首先配置水星或烏爾本地主機其他一些電子郵件服務器。

您可以使用XAMPP到烏爾本地Web服務器上安裝&配置所有(的Apache,PHP和MySQL,水星的Tomcat等)

其次,如果你想沒有用戶名和密碼發送電子郵件則會去垃圾/垃圾郵件Recipent的文件夾是未想這樣做對谷歌的虛擬賬戶,並通過該帳戶

+0

請正確地閱讀問題。 OP在發送電子郵件時沒有問題。他問的最佳做法 –

+0

@BhuvanRikka Thanx我糾正了答案,我在編輯時,你評論........ :) –

0

user1718215,同樣的問題由我問,所以我的解決辦法是:

1)我沒有當我用郵件或者郵件發送的協議,你可以嘗試sendemail作爲協議:

$config = array(); 
$config['mailpath']   = "/usr/bin/sendmail"; 
$config['protocol']   = "sendmail"; 
$config['mailtype'] = 'text'; 
$config['charset'] = 'utf-8'; 
$config['newline'] = "\r\n"; 
$config['wordwrap'] = TRUE; 

如果它不工作,我建議你應該使用smtp作爲協議,因爲沒有使用郵件或sendmail作爲協議失敗的解決方案,也許這是PHP的錯誤?

2)關於你的問題。

如何在不提密碼的情況下做我想做的事情。

如果你使用郵件或sendmail失敗,你不能做你想要的東西,而不提及我的密碼。

這是軟件開發中提及用戶密碼時可以接受的。

提到用戶密碼是可以接受的。總是,在這種情況下,人們會創建一個新的帳戶只用於發送電子郵件,所以不要擔心您的帳戶的安全。

3)最後,祝你好運。

+0

感謝您讓我困惑在安全。這意味着沒有郵件服務器用戶名和密碼是必需的。 – user1718215