无法发送电子邮件 - Codeigniter

时间:2018-04-19 05:36:39

标签: php codeigniter codeigniter-3

我无法通过以下配置发送电子邮件。

$config = array();
$config['protocol'] = 'smtp';
$config['mailtype'] = 'text';
$config['charset']='utf-8';
$config['crlf']="\r\n";
$config['newline']="\r\n";
$config['priority']=3;
$config['smtp_host'] = 'smtp.office365.com';
$config['smtp_port']=587;
$config['smtp_crypto']="tls";
$config['smtp_user'] = '************';  
$config['smtp_pass'] = '************'; 
$config['smtp_timeout'] = 120;
$this->email->initialize($config);    
$this->email->set_newline("\r\n");

我查了数百万篇博文和文章。 相同的配置在生产中正常工作,但在暂存环境中没有。

生成以下错误:

消息:stream_socket_enable_crypto():SSL:握手超时

3 个答案:

答案 0 :(得分:0)

您是否检查过在php.ini

中启用Open SSL模块

如果没有,请检查以下几点。

  • 打开您的php.ini文件
  • 搜索此行:;extension=php_openssl.dll
  • 删除; char。
  • 启用该模块
  • 保存文件并重新启动 Apache

然后检查。这可能会对你有帮助。

答案 1 :(得分:0)

从下面的代码片段中可以看出,选择电子邮件协议是设置单个配置变量的问题。在此代码段中,我已将$ config ['protocol']设置为smtp以使用SMTP协议。

<?php
$this->load->library('email');

$config = array();
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'xxx';
$config['smtp_user'] = 'xxx';
$config['smtp_pass'] = 'xxx';
$config['smtp_port'] = 25;
$this->email->initialize($config);

$this->email->set_newline("\r\n");

向CodeIgniter应用程序添加电子邮件功能只需使用电子邮件库。https://www.cloudways.com/blog/send-email-codeigniter-smtp/

答案 2 :(得分:0)

$config['smtp_host'] = 'smtp.office365.com';

更改为

$config['smtp_host'] = 'ssl://office365.com';