我正在制作时事通讯。我有大量的 1200封电子邮件,但未经过验证。我在 codeigniter 框架中使用google mail smtp进行验证。邮件正在正常发送,但当我测试错误的电子邮件时,它也显示发送邮件状态。我想询问在使用google mail smtp时如何获得退回邮件的响应。
$check
包含一系列电子邮件:
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'mymail@gmail.com',
'smtp_pass' => 'mypass',
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'send_multipart' => FALSE
);
$this->email->initialize($config);
$this->load->library('email', $config);
foreach($_POST['chk'] as $check)
{
$this->email->clear();
$data = array(
'userName'=> 'Myname'
);
$this->email->set_newline("\r\n");
$this->load->library('email',$config);
$this->email->from("mymail@gmail.com","Myname");
//echo $row->email;
$this->email->to($check);
$this->email->subject("THIS IS AN EMAIL TEST");
$gett = $this->load->view('home_test.php',$data,TRUE);
$this->email->message($gett);
$this->email->set_mailtype("html");
if($this->email->send())
{
echo "Your Mail send";
}
else
{
show_error($this->email->print_debugger());
exit();
}
}
如果我提供虚假的电子邮件ID,它始终显示您的邮件发送。如何在 PHP 中跟踪此退回的邮件。
答案 0 :(得分:0)
发送后,您不会立即获得退回电子邮件的状态。您可以做的是,将返回路径电子邮件指定为$this->email->from("mymail@gmail.com","Myname");
的第三个参数。
更改此行
$this->email->from("mymail@gmail.com","Myname");
到
$this->email->from("mymail@gmail.com","Myname", 'yourreturnemail@gmail.com');
有关详细信息,请参阅codigniter的电子邮件文档here
这样,所有退回的电子邮件都会转到返回路径的电子邮件地址。然后,您可以创建一个cron或其他东西来阅读和解析这些电子邮件。可以安装php imap
extension并用于读取电子邮件退回状态。