在为codeigniter发送电子邮件时出现连接超时问题

时间:2014-02-11 03:50:25

标签: php codeigniter email

向codeigniter发送电子邮件时遇到问题。

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

);

$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->to($user['company_email']);
$this->email->from('noreply@email.com', 'COMPANY');   
$this->email->subject('Password reset');
$this->email->message('You have requested a code. Here is your code: '. $reset['return_pass']);  
    $this->email->send();

在某些时候,我可以发送电子邮件没有问题,但如果我多次使用它或多个用户使用此发送电子邮件(忘记密码),googlemail无法连接到ssl://smtp.googlemail.com: 465(连接超时),用户不会收到电子邮件。我该如何解决这个问题?这是googlemail的安全问题吗?

1 个答案:

答案 0 :(得分:0)

我有类似的问题。首先,检查垃圾邮件,因为在我测试我的时候谷歌决定他们是垃圾邮件并开始在那里进行排序。

我发现使用此协议向多个用户发送邮件非常不可靠,所以我只是运行一个循环来发送邮件:

function sendEmail($user){
     $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.gmail.com',
        'smtp_port' => 465,
        'smtp_user' => 'email@gmail.com',
        'smtp_pass' => 'xxxxx',
        'mailtype'  => 'html', 
        'charset'   => 'iso-8859-1'
     );

    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    $this->email->to($user);
    $this->email->from('noreply@email.com', 'COMPANY');   
    $this->email->subject('Password reset');
    $this->email->message('You have requested a code. Here is your code: '.
    $reset['return_pass']);  
    $this->email->send();
}


$users = array("person1@test.com", "person2@test.com");

foreach($users as $user){
    sendMail($user);
}