【问题标题】:E-mail parsing addresses with junk characters带有垃圾字符的电子邮件解析地址
【发布时间】:2013-11-24 22:10:28
【问题描述】:

我正在通过我编写的表格发送电子邮件,出于某种原因,在某些情况下,电子邮件地址会变成垃圾邮件,而在其他情况下却可以正常工作。

//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

【问题讨论】:

    标签: php parsing email formatting


    【解决方案1】:

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

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

    上面的代码对 $em 没有任何作用

    顺便说一句,我认为最后一个标题行应该是这样的:

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

    【讨论】:

    • $em 确实是在之前的代码中定义的,这只是我用来替换字符串的复杂内容。这段代码的某个地方有问题,忽略了前面定义的 $em、$rn 等。用户收到电子邮件(因为 $em 已定义),它只是在电子邮件正文中显示电子邮件搞砸了。
    【解决方案2】:

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

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

    我的顺序是我用电子邮件 payment@gmail.com 替换 @e,然后用总计替换所有 @g,所以 payment*@g *mail.com 变成了"payment".$grandtotal."mail.com"

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 2011-03-12
      • 2011-01-07
      • 2017-05-17
      • 1970-01-01
      • 2021-08-21
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多