我正在使用代码点火器,我创建了一个电子邮件函数来将电子邮件发送到特定的电子邮件ID
public function email($email){
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_timeout']=5;
$config['smtp_port'] = '465';
$config['smtp_user'] = 'MyEmailID@gmail.com';
$config['smtp_pass'] = '********************';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['newline'] = "rn";
$config['wordwrap'] = TRUE;
$this->load->library('email');
$this->email->initialize($config);
$this->email->from('MyEmailID@gmail.com', 'MyEmailID');
$this->email->to($email);
$this->email->subject('My Subject');
$this->email->message('My Message');
return $this->email->send();
}
这在我的本地机器中运行良好,但是当我将该代码上传到托管服务器(我正在使用 Godaddy 托管)时,我收到以下错误:
遇到 PHP 错误
严重性:警告
消息: fsockopen(): 无法连接到 ssl://smtp.gmail.com:465 (连接被拒绝)
文件名:库/电子邮件.php
行号:2020
回溯:
文件:/home/MyDir/public_html/application/models/BasicModel.php 行: 47 功能:发送
文件:/home/MyDir/public_html/application/controllers/Login.php 行: 48 功能:电子邮件
文件:/home/MyDir/public_html/index.php 行: 315 功能: require_once
使用 SSL 的 TLS 并将端口号更改为 587 $this->电子邮件->初始化($config); $config = 数组();
//Load email library
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'tls://smtp.gmail.com';
$config['smtp_port'] = '587';
$config['smtp_timeout'] = '7';
$config['smtp_user'] = 'email';
$config['smtp_pass'] = 'password';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';
$config['validation'] = TRUE; // bool whether to validate email or not
$this->email->set_newline("rn");
;
$this->email->clear(TRUE);
$this->email->to($this->input->post('email'));
$this->email->subject($row_email->email_subject);
工作现场
在我的情况下,这种错误是由源服务器防火墙阻止SMTP连接引起的。
它可以帮助在配置服务器防火墙(如果使用)配置中取消阻止/白名单目标IP或禁用SMTP阻止/白名单用户:
SMTP_BLOCK = off
SMTP_ALLOWUSER = usernamehere
你忘了添加'
更改自
$config['smtp_host'] = 'ssl://smtp.gmail.com';
自
$config['smtp_host'] = 'smtp.gmail.com';
或
在 php 中取消注释php_openssl.dll
.ini
更改自:
$config['smtp_host'] = 'smtp.seuDominio.com';
自:
$config['smtp_host'] = 'mail.seuDominio.com';
$config['smtp_port'] = 587; //587
$config['smtp_user'] = 'seu@dominio.com';
$config['smtp_pass'] = 'suaSenha';
更改自:
$config['protocol'] = 'smtp';
自:
$config['protocol'] = 'mail';
$config['validate'] = TRUE;
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['newline'] = "rn";