PHP生成的电子邮件中不可预测的行为

Den*_*nis 4 html php email

这更像是一种好奇心.每当评论发布时,我网站上的评论系统都会自动生成一封电子邮件给我.它是批准评论的链接,以及拒绝评论的链接.

$my_headers = 'MIME-Version: 1.0' . "\n"; 

$my_headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n"; 

$my_headers .= 'From: MYSITE.com <ealert@mysite.com>' . "\n"; 

    $subject = "Comment Received";

    $messagei = "Comment from " . addslashes($_POST['commentName']) ." on ".addslashes($title)."." . "<br /><br />" .addslashes($commentCommment);

    $messagei .= "<br /><br />
        <strong>OPTIONS:</strong>

    <br /><br /><a href='http://www.MYSITE.com/edit/instaprove.php?Approve=Approve&commentid=".$lastID."'>

    <h2>http://www.MYSITE.com/edit/instaprove.php?Approve=Approve&commentid=".$lastID."</h2> (Approve Comment)</a>

    <br /><br /><br /><a href='http://www.MYSITE.com/edit/instaprove.php?Remove=Remove&commentid=".$lastID."'>

    <h2>http://www.MYSITE.com/edit/instaprove.php?Remove=Remove&commentid=".$lastID."</h2> (Delete Comment)</a>";

    mail('comments@mysite.com',$subject,$messagei,$my_headers,"-fealert@mysite.com");
Run Code Online (Sandbox Code Playgroud)

99%的时间它工作正常,但每隔一段时间,而不是正确生成批准链接,如

http://www.mysite.com/edit/instaprove.php?Approve=Approve&commentid=142631,

它会在其中生成一个空格,因此我在电子邮件中收到的链接会转到

http://www.mysite.com/edit/instaprove.ph%20p?Approve=Approve&commentid=142631

奇怪,不是吗?

编辑:澄清 - 当发生这种情况时,链接将在电子邮件中正确写出(.php),但它所链接的链接已损坏(.ph p).

编辑8/12:它再次发生了.链接文字是正确的:

http://www.mysite.com/edit/instaprove.php?Approve=Approve&commentid=142858

但链接呈现为

http://www.mysite.com/edit/%20instaprove.php?Approve=Approve&commentid=142858

因此,当它出现时,神秘空间出现在链接的不同点.

小智 6

我有一个类似的空格问题,而且我的电子邮件来源中也出现了奇怪的"!\n".

这是因为线条很长.在电子邮件的内容中添加一些"\n"可以解决问题.