使用SMTP协议使用CodeIgniter发送邮件不起作用

时间:2011-08-06 14:58:16

标签: codeigniter ssl smtp gmail email-spam

我在使用CI发送邮件时遇到问题。我使用“sendmail”协议发送邮件,但它被过滤为垃圾邮件。我使用SMTP协议来解决问题,但它没有被发送。

我的代码如下:

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => '*******@gmail.com',
    'smtp_pass' => '********',
    'mailtype'  => 'html',
    'charset'   => 'iso-8859-1'
);

$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$message = "test mail";
$this->email->set_newline("\r\n");
$this->email->from('dsiddharth2@gmail.com', 'St. Maries');
$this->email->to("dsiddharth2@gmail.com");
$this->email->subject('Contact - St. Marians Belguam');
$this->email->message($message);
if($this->email->send())
{
    echo "mail sent successfully";
}
else
{
    show_error($this->email->print_debugger());
}

当我在CI中使用“smtp”协议发送电子邮件时,出现以下错误:

A PHP Error was encountered

Severity: Warning

Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (Connection timed out)

Filename: libraries/Email.php

Line Number: 1673

和其他错误列表......

我要求服务器管理员启用“openssl”。它已经被照顾并启用了。

如果您想尝试一下,请访问this link并自行检查。

1 个答案:

答案 0 :(得分:0)

如果它不起作用,请检查您的php.ini文件。改变这一行

;延长= php_openssl.dll

延长= php_openssl.dll

这意味着从php.ini文件中的行中删除注释。