【问题标题】:Sending email through google mail in codeigniter在codeigniter中通过谷歌邮件发送电子邮件
【发布时间】:2012-10-17 08:56:56
【问题描述】:

我正在尝试在 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();

【问题讨论】:

  • 您可以为此创建一个新的 gmail 帐户 :)。

标签: php codeigniter email


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答。我很困惑,因为我们是在一个团队中开发这个项目,我找不到任何办法避免向我们一起工作的所有开发人员公开。
  • @user1718215 如果你在一家公司工作,它会有一些专门用于此目的的虚拟电子邮件帐户。如果您没有 gmail 帐户,请创建一个新帐户 ..
【解决方案2】:

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的错误?

2)关于您的问题。

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

如果你使用mail或sendmail失败,你不能不提我的密码做你想做的事。

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

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

3)最后,祝你好运。

【讨论】:

  • 感谢您让我在安全方面感到困惑。这意味着不需要邮件服务器用户名和密码。
【解决方案3】:

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

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

您可以使用 Xampp 在您的本地网络服务器上安装和配置所有(Apache、Php、Mysql、Mercury、Tomcat 等)

其次,如果您想发送没有用户名和密码的电子邮件,那么它将转到不需要的Recipent 的垃圾邮件/垃圾邮件文件夹,因此请在谷歌上创建虚拟帐户并通过以下方式发送电子邮件该帐户

【讨论】:

  • 请正确阅读问题。 OP 在发送电子邮件方面没有问题。他在询问最佳实践
猜你喜欢
  • 1970-01-01
  • 2012-05-22
  • 2012-03-22
  • 2016-11-25
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 2021-01-07
  • 2023-03-03
相关资源
最近更新 更多