PHP邮件发送到外部电子邮件地址,但不发送到内部电子邮件地址

PHP邮件发送到外部电子邮件地址,但不发送到内部电子邮件地址,php,Php,从根本不发送电子邮件开始,但后来我在函数中使用了“-f”参数,它可以发送到外部地址(Gmail和Hotmail到目前为止已经测试过),但对于域中的地址它不起作用。只是想知道它是在代码中还是服务器设置有问题 if ($Valid == 1) { $_POST = array_map('strip_tags', $_POST); $_POST = array_map('stripslashes', $_POST); $To = "user@domain.ca";

从根本不发送电子邮件开始,但后来我在函数中使用了“-f”参数,它可以发送到外部地址(Gmail和Hotmail到目前为止已经测试过),但对于域中的地址它不起作用。只是想知道它是在代码中还是服务器设置有问题

if ($Valid == 1) {
    $_POST = array_map('strip_tags', $_POST);
    $_POST = array_map('stripslashes', $_POST);

    $To = "user@domain.ca";

    $Subject = "Online Driver Application";
    $Body = "All the values of the form that was filled out (removed because there was a lot and it doesn't affect the problem)";

    $Headers  = 'MIME-Version: 1.0' . "\r\n";
    $Headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $Headers .= 'From: Company <info@domain.ca>' . "\r\n";
    $Headers .= 'Reply-To: no-reply@domain.ca' . "\r\n";
    $Headers .= 'X-Mailer: PHP/' . phpversion();

    mail($To, $Subject, $Body, $Headers, -finfo@domain.ca);

    echo '<div class="success">Thank You! Your form has been successfully submitted.</div>';
} else {
    if ($ErrorMsg != '') {
        echo '<div class="error">'.$ErrorMsg.'</div>';  
    }
if($Valid==1){
$\u POST=数组\u映射('strip\u tags',$\u POST);
$\u POST=array\u map('stripslashes',$\u POST);
$To=”user@domain.ca";
$Subject=“在线驱动程序应用程序”;
$Body=“已填写表单的所有值(由于有很多值而被删除,并且不会影响问题)”;
$Headers='MIME版本:1.0'。“\r\n”;
$Headers.=“内容类型:text/html;字符集=iso-8859-1”。“\r\n”;
$Headers.='发件人:公司'。“\r\n”;
$Headers.='答复:否-reply@domain.ca“。”\r\n”;
$Headers.='X-Mailer:PHP/'.phpversion();
邮件($To、$Subject、$Body、$Headers、-finfo@domain.ca);
echo“谢谢!您的表格已成功提交。”;
}否则{
如果($ErrorMsg!=''){
回显“.$ErrorMsg.”;
}
再说一次,除非我有-finfo@domain.ca在邮件功能中,电子邮件根本不会被发送出去


谢谢。

代码似乎正常。这可能是由于设置不正确(例如PHP.ini没有SMTP服务器或防火墙阻止了某些内容)。此外,请确保换行符是
“\n”
$Body
中,我看到一些邮件服务器因此拒绝邮件。直接使用邮件总是很棘手的。尝试使用类似或的库。这样,您就不必担心如何发送HTML、附件……

其他参数
参数(-f或-r)可用于将附加标志作为命令行选项传递给配置为在发送邮件时使用的程序,如sendmail_路径配置设置所定义。例如,可用于在使用sendmail和-f sendmail选项时设置信封发件人地址

附加参数(
>4.2.2
)在
safe\u模式下被禁用,mail()函数将显示警告消息,并在使用时返回FALSE

当使用此方法设置信封发件人(-f)时,应将运行Web服务器的用户作为受信任用户添加到sendmail配置中,以防止向邮件添加“X警告”标题。对于sendmail用户,此文件为
/etc/mail/trusted users


(或者,如果仍然存在问题,请删除sendmail并安装postfix(更简单)。

可能是服务器安装问题,如果服务器安装了plesk或cpanel之类的东西,但mx记录指向其他位置(不同的地址),则服务器可能会将电子邮件视为“内部”并且跳过连接,将邮件发送到自身。他们确实使用Cpanel。知道我需要去哪里查看mx记录吗?我一直想这样做,但他们只给了我访问Cpanel的权限(我是新来的),我可以通过cpanel安装上述库吗?@ETx13是的,我想你可以。我有一台使用cpanel的主机,有一个文件管理器可以让你上传文件,但如果有很多文件要做,那将是一件痛苦的事。你也应该有一个FTP访问权限。。。