Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件将不会处理“文件”;。com“;_Php_Email - Fatal编程技术网

PHP邮件将不会处理“文件”;。com“;

PHP邮件将不会处理“文件”;。com“;,php,email,Php,Email,我知道这很奇怪,但当在主题或正文文本中添加“.com”以发送PHP邮件(如-xyz.com)时,邮件将不会发送。这是一个问题,这个托管公司(ipage),但我想看看他们是不是我可以做的东西,在脚本本身,因为这是一个CMS的地雷,我想保持普遍为每个人谁使用它 脚本很简单,如下所示: function confirmEmail($username, $email, $confirm_code) { $sitename = str_replace(".com", " .com", site_n

我知道这很奇怪,但当在主题或正文文本中添加“.com”以发送PHP邮件(如-xyz.com)时,邮件将不会发送。这是一个问题,这个托管公司(ipage),但我想看看他们是不是我可以做的东西,在脚本本身,因为这是一个CMS的地雷,我想保持普遍为每个人谁使用它

脚本很简单,如下所示:

function confirmEmail($username, $email, $confirm_code) {

   $sitename = str_replace(".com", " .com", site_name);
   $subject  = "Your confirmation link here";
   $headers .= 'To: '.$username.' <'.$email.'>' . "\r\n";
   $headers .= "From: ".$sitename." <".support_email.">". "\r\n";
   $message  = "Your Comfirmation link \n
   Click on this link to activate your account \n
   ".root."/confirm.php?confirm=$confirm_code";

   $message = wordwrap($message, 70);

   $sendmail = mail($username,$subject,$message,$headers);
   if ( $sendmail ) {
    return true;  
   } else {
    return false;
   }

  }
功能确认邮件($username、$email、$confirm\u code){
$sitename=str_replace(“.com”,“.com”,site_name);
$subject=“此处的确认链接”;
$headers.='收件人:'.$username'.'.“\r\n”;
$headers.=“From:$sitename.”\r\n;
$message=“您的确认链接\n
单击此链接可激活您的帐户\n
“.root./confirm.php?confirm=$confirm_code”;
$message=wordwrap($message,70);
$sendmail=mail($username、$subject、$message、$headers);
如果($sendmail){
返回true;
}否则{
返回false;
}
}
现在正如您所看到的,我将$sitename变量的“.com”替换为“.com”(注意开头的空格),这是可行的,但问题是“root”包含givin站点的完整路径,因此链接类似于“xyz.com/confirm.php?confirm=$confirm\u code”。我不能在站点路径中的“.com”前面留空格,如 “xyz.com/etc…”因为用户显然无法从其电子邮件中单击链接

我知道这是一个奇怪的问题,我不知道发生了什么,甚至不知道该要求主机更改什么

*注意:site_name和root在前面的另一个页面中定义,它们可以正常工作。也没有返回任何错误


有什么想法吗?

您的代码是正确的。您的变通方法不应该是必需的

这很可能是提供商的问题

不了解您的环境,但如果您无法完全控制邮件服务器,请尝试使用telnet发送带有链接的邮件,以便真正了解所有内容。垃圾邮件过滤器等通常配置不当,无法返回正确的代码


如果您没有任何运气,我建议切换到配置良好的外部SMTP服务器。如果你不发送大量邮件,你完全可以使用gmail来完成这项任务。

NVM关于我的答案,我理解错了。没有办法做到这一点,同时仍然保持链接,你可以做它的YouTube方式:www.示例点复合的垃圾邮件过滤器播放。考虑不同的路线-如果你的托管公司的电子邮件是如此破坏,使用Gmail帐户发送邮件(通过SMTP)。免费,效果很好。垃圾邮件过滤器,嗯?你能再解释一下吗?我想这将是在托管公司的手中,虽然?你说的youtube方式是什么意思?他们不能像xyzDOTcom那样点击链接,是吗?只是猜测,更多的url=更有可能是垃圾邮件,标题中也有url。谢谢你,这在发布问题的几分钟内变得更加明显。我将注册并登录,这样我就可以对这个答案进行投票。谢谢大家每个代表性较高的人都可以为我投票吗=)OOoOO,点击淡绿色复选标记,ooooooo=D。我点击了0-.-文件上方的箭头,建议只要你还没有接受至少一个答案,就应该概述这一点;)