我尝试使用codeIgniter发送本地电子邮件。
// 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:证书验证失败。
答案 0 :(得分:0)
尝试将配置更新为以下内容:
$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',
)
答案 1 :(得分:0)
$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' );
试试这个......
答案 2 :(得分:0)
如果您使用的是Avast Antivirus,请将其禁用。
在我的情况下,Avast Antivirus阻止了端口,我使用SMTP端口465从我的Codeigniter项目发送电子邮件。
只需禁用avast防病毒即可解决问题。
答案 3 :(得分:0)
如果您在共享托管服务器上,大多数情况下端口25和587将保持阻止状态。此块是由您的托管服务提供商专门完成的,如果您使用的是本地计算机,则防病毒/防火墙将默认阻止这些端口。
在这些情况下,您将获得连接超时或套接字连接错误。
当这些端口被阻止时,尝试使用端口2525进行连接。如果您发现端口也被阻止,那么唯一的解决方案是联系您的托管服务提供商以取消阻止这些端口或禁用/编辑防火墙/防病毒规则。
默认情况下,大多数托管服务提供商/防病毒/防火墙会阻止这些电子邮件端口,以保护其网络不会发送任何类型的垃圾邮件。