2012-10-17 95 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