用垃圾字符解析地址的电子邮件

时间:2013-11-24 22:10:28

标签: php parsing email formatting

我正在通过我编码的表单发送电子邮件,出于某种原因,在某些情况下,电子邮件地址变成了垃圾邮件,而其他时候它的工作正常。

//on form page
$message = str_replace("@e",$emtemail,$message);

$ message存储在SQL中(在另一个页面上定义),对于$ emtemail也是如此。 $ message只是正在发送的电子邮件的正文,我正在用人们发送付款的电子邮件替换@e的所有实例。它会向客户发送一封电子邮件,并向我发送一封电子邮件。

//customer e-mail
//the display address might appear as payment52.62gmail.com instead of payment@gmail.com
//my e-mail
//all e-mail addresses formatted properly without error, @ appears as @

为什么电子邮件地址奇怪地解析?与编码有关吗?

这是我发送电子邮件的所有相关代码。我无法确定问题所在。

//any variables used in the below but not declared are previously initialized
$em = $userc["email"];
$subject = $emailone["subject"];
$subject = str_replace("@o",$ordernum,$subject);
$subject = str_replace("@u",htmlspecialchars($rn),$subject);
$subject = str_replace("@g",$gt,$subject);
$subject = str_replace("@sl","www.SZVapor.com",$subject);
$subject = str_replace("@ss","SZVapor.com",$subject);
$subject = str_replace("@st","SZVapor",$subject);
$message = nl2br($emailone["message"]);
$message = str_replace("@o",$ordernum,$message);
$message = str_replace("@u",htmlspecialchars($rn),$message);
$message = str_replace("@t",$table,$message);
$message = str_replace("@e",$emtemail,$message);
$message = str_replace("@g",$gt,$message);
$message = str_replace("@a",$addrsubmit,$message);
$message = str_replace("@sl","www.SZVapor.com",$message);
$message = str_replace("@ss","SZVapor.com",$message);
$message = str_replace("@st","SZVapor",$message);
$message = str_replace("@c",$em,$message);
$headers = "MIME-Version: 1.0"."\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1"."\r\n";
$headers .= "From: no-reply@SZVapor.com";
mail($em, $subject, $message, $headers);

给出了一些电子邮件地址的例子:

payment62.44gmail.com
payment54.45gmail.com
payment22.59gmail.com
payment25.49gmail.com

2 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/function.mail.php

邮件的第一个参数条目是电子邮件地址。

上面的代码对$ em

没有任何作用

顺便说一句,我认为最后一个标题行应如下所示:

$headers .= "From: no-reply@SZVapor.com" . "\r\n";

答案 1 :(得分:0)

我解决了这个问题,这对我来说是一个错误。我用变量替换了某些字符组合的所有实例。

@g = replaced with grand total
@e = replaced with payment e-mail
@o = replaced with order number
etc

我执行的订单是这样的,我用电子邮件payment@gmail.com替换了@e,然后将所有@g替换为总计,所以付款* @g * mail.com成为"payment".$grandtotal."mail.com"