PHP邮件功能导致错误

时间:2014-02-27 01:59:52

标签: php

我正在通过我的PayPal IPN脚本设置自动电子邮件回复,但以下代码会导致paypal的沙箱失败。

// PAYMENT VALIDATED & VERIFIED!

$email = $_POST['payer_email'];
$password = mt_rand(1000, 9999);

$to      = $email;
$subject = 'Download Area | Login Credentials';
$message = '

Thank you for your purchase

Your account information
-------------------------
Email: '.$email.'
Password: '.$password.'
-------------------------

You can now login at http://yourdomain.com/PayPal/';
$headers = 'From:noreply@yourdomain.com<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>' . "\r\n";

mail($to, $subject, $message, $headers);    

是否有一些简单的错误,或者脚本导致错误的原因是否更深入。请记住,我是新手,这是我从http://code.tutsplus.com/tutorials/using-paypals-instant-payment-notification-with-php--net-3271复制和粘贴的代码。

另外,我使用的电子邮件是否必须位于我用来托管脚本的同一台服务器上?

删除电子邮件以避免泄露个人信息。

1 个答案:

答案 0 :(得分:2)

这是什么?

$headers = 'From:noreply@yourdomain.com<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>' . "\r\n";

您的邮件标题中不能包含HTML或JavaScript。把那些可能导致错误的广告拿出来。

$headers = 'From:noreply@yourdomain.com';