我是CI和PHP的新手。目前我正在使用xammp来运行PHP,Apache和MySql。现在我正在尝试发送带有CI的电子邮件。但我经常遇到如下错误。
遇到PHP错误
严重性:警告
消息:fsockopen():无法连接 ssl://smtp.googlemail.com:465(连接尝试失败,因为 连接方在一段时间后没有正确回应,或者 建立的连接失败,因为连接的主机失败了 响应。 )
文件名:libraries / Email.php
行号:1689
我有谷歌约三个小时仍然没有找到解决方案。我已经在Apache中启用了“openssl
”。我想描述我的电子邮件控制器类的编码。
//电子邮件控制器代码'索引'功能
$this->load->library('email');
$this->email->set_newline("\r\n");
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';
$config['protocol'] = 'smtp';
$config['smtp_port'] = 465;
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_user'] = "something@gmail.com";
$config['smtp_pass'] = "xxx";
$this->email->initialize($config);
$this->email->from('something@gmail.com', 'NayLinAung');
$this->email->to('something@gmail.com');
$this->email->subject('This is an email test');
$this->email->message("It is working, Great! You will be successful.");
if ($this->email->send())
{
echo "Email was successfully sent.";
}
else {
show_error($this->email->print_debugger());
}
当我将'smtp'更改为'mail'时,不会发生错误,但实际上并未发送电子邮件。另外,我关闭了我的Windows防火墙。
请为此错误提供任何解决方案。
答案 0 :(得分:1)
我之前发现的是:
要在CodeIgniter中使用Google SMTP,您需要对Gmail帐户设置进行两(2)次更改:(请注意,攻击者现在更容易侵入您的帐户 - Google) / em>的
- 启用两步验证。
- 允许安全性较低的应用:开启(或启用)
醇>
现在使用id
作为'smtp_host'
而不是ssl://smtp.gmail.com
此问题也在this link中讨论过。
希望得到这个帮助。
答案 1 :(得分:0)
如果你可以使用 试试这个 IMAP 库
您可以使用此代码连接
$config['protocol'] = "imap";
$config['imap_host'] = 'xxx.xxx.xxx.xxx';
$config['imap_user'] = 'user@domain.com';
$config['imap_pass'] = 'Jk98S**Jlk';
$config['imap_port'] = '993';
$config['imap_mailbox'] = 'INBOX';
$config['imap_path'] = '/imap/ssl/novalidate-cert'; // use this string if you do not want use ssl
$config['imap_server_encoding'] = 'utf-8';
$config['imap_attachemnt_dir'] = './tmp/';
$this->load->library('email', $config);
$this->email->from($frommail);
$this->email->to($tomail);
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();
您也可以使用 SMTP 但如果你有意志 我建议你使用 IMAP 。 它有更多的功能,它比 SMTP ...
更新