通过codeigniter中的google邮件发送电子邮件

时间:2012-10-17 08:56:56

标签: php codeigniter email-integration

我正在尝试在codeigniter中发送电子邮件,这是我正在使用的一段代码。第一个注释代码打印错误,说我的应用程序没有配置发送电子邮件。

使用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' => 'myemail@gmail.com',
        '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("receiver1@gmail.com,receiver2@gmail.com,receiver3@yahoo.fr");
        $this->email->subject("Hello world");
        $this->email->subject("Hello world from local pc");
        $this->email->send();
        $data['msg']=$this->email->print_debugger();

3 个答案:

答案 0 :(得分:0)

1)如果不在smtp.googlemail中使用ID和密码,则无法发送电子邮件。原因很简单。 smtp使用您的Gmail帐户发送电子邮件。所以需要id和密码。如果您不想使用您的Gmail帐户,您必须有一个邮件服务器来发送电子邮件。

2)当你不必共享包含密码等机密数据的文件时,使用google smtp就可以接受了。

答案 1 :(得分:0)

user1718215,我提出同样的问题,所以我的解决方案是:

1)当我使用mail或sendmail作为协议时,我失败了,您可以尝试使用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作为协议,因为没有使用mail或sendmail作为协议失败的解决方案,也许是php的bug?

2)关于你的问题。

  

如何在不提及密码的情况下做我想做的事情。

如果您未能使用邮件或sendmail,则在不提及密码的情况下无法执行您想要的操作。

  

软件开发中是否可以提及用户密码。

提及用户密码是可以接受的。总是,在这种情况下,人们只会为发送电子邮件创建一个新的帐户,所以不要担心帐户的安全性。

3)最后,祝你好运。

答案 2 :(得分:-1)

第一个代码不起作用,因为您的localhost上没有电子邮件服务器...

首先在您的localhost上配置 Mercury 或其他一些电子邮件服务器。

您可以使用 Xampp 来安装&在本地Web服务器上配置所有(Apache,Php,Mysql,Mercury,Tomcat等)

其次,如果你想发送没有用户名和密码的电子邮件,那么它将转到垃圾/垃圾邮件 Recipent的文件夹,这是不需要的,所以在google上创建虚拟帐户并通过电子邮件发送电子邮件该帐户