使用 codeIgniter 发送本地电子邮件

Posted

技术标签:

【中文标题】使用 codeIgniter 发送本地电子邮件【英文标题】:send a local email with codeIgniter 【发布时间】:2018-04-29 23:48:55 【问题描述】:

我尝试。

// envoi du mail
 public function envoiMail()
    $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => 'xxxxxxx@gmail.cm',
        'smtp_pass' => 'XXXXXX',
        'mailtype'  => 'html',
        'charset'   => 'iso-8859-1',
        'crlf'   => '\r\n',
        'newline'   => '\r\n',
    );
    $sujet = $this->input->post('sujet');
    $message = $this->input->post('message');
    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    $this->email->from('xxxx@gmail.com', 'Name');
    $this->email->to('xxxx@yahoo.fr');
    $this->email->subject($sujet);
    $this->email->message($message);
    $this->email->send();
  if($this->email->send())
      // mail transmis
       echo "ok";
  else
      // erreur de transmission
      echo"erreur d'envoi";
  
 

当我测试时,我收到此错误:消息:fsockopen():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败。

【问题讨论】:

【参考方案1】:

如果您在共享托管服务器上,大多数情况下端口 25 和 587 将保持阻塞状态。此阻止是由您的托管服务提供商有意完成的,如果您使用本地计算机,则防病毒/防火墙将默认阻止这些端口。

在这些情况下,您将获得连接超时或套接字连接错误。

当这些端口被阻止时,请尝试使用端口 2525 进行连接。如果您发现该端口也被阻止,那么唯一的解决方案是联系您的托管服务提供商以取消阻止这些端口或禁用/编辑防火墙/防病毒规则。

默认情况下,大多数托管服务提供商/防病毒/防火墙会阻止这些电子邮件端口,以保护其网络不发送任何类型的垃圾邮件。

【讨论】:

【参考方案2】:

如果您使用 Avast Antivirus,请禁用它。

在我的情况下,Avast Antivirus 阻止了端口,我使用 SMTP 端口 465 从我的 Codeigniter 项目发送电子邮件。

只需禁用 avast 防病毒软件即可解决问题。

【讨论】:

我没有安装avast【参考方案3】:
$config = array(
                'protocol'  => 'smtp',
                'smtp_host' => 'ssl://smtp.googlemail.com',
                'smtp_port' => 465,
                'smtp_user' => 'yourmail@gmail.com',
                'smtp_pass' => 'your password',
                'mailtype'  => 'html',
                'charset'   => 'utf-8'
            );

试试这个....

【讨论】:

如果您使用任何类型的防病毒软件,请禁用它并重试。同时检查您的防火墙是否被禁用... 我不再收到错误消息,但是电子邮件没有通过:我收到“erreur d'envoi”【参考方案4】:

尝试将您的配置更新为以下内容:

 $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'smtp.googlemail.com',
        'smtp_port' => '587',
        'smtp_user' => 'xxxxxxx@gmail.cm',
        'smtp_pass' => 'XXXXXX',
        'mailtype'  => 'html',
        'charset'   => 'iso-8859-1',
        'crlf'   => '\r\n',
        'newline'   => '\r\n',
    )

【讨论】:

想你,但是当我使用此代码时,错误不再出现,但我没有收到电子邮件。顺便说一句,我属于其他情况

以上是关于使用 codeIgniter 发送本地电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

在本地 XAMPP 服务器中使用 CodeIgniter 发送电子邮件

无法发送电子邮件 Codeigniter

如何更正使用 codeigniter 发送电子邮件的方式

发送电子邮件 Codeigniter 错误

无法在Codeigniter中发送电子邮件,没有错误消息。本地或远程

无法在 codeigniter 中从 gmail 发送电子邮件,SMTP 身份验证错误