【发布时间】:2013-04-24 13:18:34
【问题描述】:
我知道乍一看很多用户将此问题标记为重复,但在阅读了 10 多个问题后,我没有得到任何满意的答案,几乎所有问题的答案都带有“您无能为力。 ”、“我不确定”、“没有确定的投篮技巧”等这就是我写这个问题的原因,我认为这是非常笼统的问题,每个 php 开发人员都至少面临一次,好的演讲:) ,现在我的问题是..
我正在开发一个项目管理应用程序,并且正在使用 phpmailer 在创建任何任务或将任何错误邮件上的任何 cmets 发送给相关用户时发送邮件,实际上不是在操作发生后立即发送邮件我创建了一个'通知表,我实际上保存了所有邮件数据和一个 cron 脚本,然后发送所有邮件,这是我的 cron 脚本的一部分。
$query = "select * from notifications where 1 ";
$projects = $obj_basic->get_query_data($query);
if(!empty($projects))
{
foreach($projects as $data)
{
$message = html_entity_decode($data['content'], ENT_QUOTES);
list($ton, $email) = get_name_email($data['to']);
if(!empty($email))
{
$query = "select send_notification from users where email='$email' AND send_notification !='1' ";
$users = $obj_basic->get_query_data($query);
if(!empty($users))
{
$deleteQuery = "delete from notifications where id ='".$data['id']."'";
$obj_basic->run_query($deleteQuery, 'DELETE');
continue;
}
$comment_id = $data['reference_id'];
$attribute = $data['attribute'];
$mail = new PHPMailer();
list($fromName, $fromEmail) = get_name_email($data['from']);
if(!empty($comment_id) && $attribute == 'comment')
{
$fromEmail = 'comment@changewebaddress.com';
}
$mail->SetFrom($fromEmail, $fromName);
$mail->AddReplyTo($fromEmail, $fromName);
$mail->AddAddress($email, $ton);
$mail->BouncedTo = $fromEmail;
$mail->IsHTML(true);
$mail->Subject = $data['subject'];
$mail->Body = $message;
$MessageID = "<".md5($comment_id.'_'.$email).'@changewebaddress.com>';
$mail->MessageID= $MessageID;
if($mail->Send()) {
if(!empty($comment_id) && $attribute == 'comment')
{
$query = "SELECT message_id FROM `project_comments` WHERE `id`='$comment_id'; ";
$project_comments = $obj_basic->get_query_data($query, 'SELECT');
if(!empty($project_comments))
{
$project_comments[0]['message_id'] = html_entity_decode(trim($project_comments[0]['message_id'], ","));
$query = "UPDATE `project_comments` SET `message_id`=CONCAT_WS(',', '".mysql_escape_string($project_comments[0]['message_id'])."', '".mysql_escape_string(html_entity_decode($MessageID))."') WHERE `id`='$comment_id'; ";
$obj_basic->run_query($query, 'UPDATE');
}
}
$deleteQuery = "delete from notifications where id ='".$data['id']."'";
$obj_basic->run_query($deleteQuery, 'DELETE');
}
}
}
}
根据我的测试,一切看起来都不错,因为我使用的是 phpmailer,它设置了所需的标头,它还在标头中设置了“返回路径:”和“回复:”。
这个问题有没有确切的解决办法
【问题讨论】:
-
在什么意义上“作为垃圾邮件发送”?
-
请先搜索重复项,尽管您使用特定库,但这是一个非常广泛的主题。因此,首先要接受教育。
-
不,你的问题不会变成那种不时地给出明确答案的单一问题。不。相反,在您发现的十个问题中,您究竟尝试了哪些显示了您尝试的代码,哪些对您不起作用?如果你真的想得到这个答案,你需要概述一下。
-
该 cron 脚本 100% 无法确定您的电子邮件为何被视为垃圾邮件。你自己说过——你的研究指出了“无能为力”的答案。我不确定您对问同一个问题会得到不同答案的期望有多大。相反,您应该研究为什么电子邮件会被标记为垃圾邮件,并相应地修复您的电子邮件标记。
-
@SubodhGhulaxe 我阅读了您的问题并完全理解;你和其他人问同样的问题,你读过同样的答案,因为他们没有解决方案,你认为再次问同样的问题你会得到不同的答案。我不明白你的逻辑,但我明白你的问题。
标签: php phpmailer spam spam-prevention