情况: 我们的客户(domain.com的所有者)已将www.domain.com的A记录设置为我们运行domain.com后面网站的服务器的IP地址。我们只为这个域提供托管服务,他们有自己的电子邮件服务器。
这意味着domain.com拥有另一个IP而不是domain.com的邮件服务器。
问题: 从PHP发送邮件到foo@bar.com但是发送邮件到*@domain.com不起作用。
问题: 这与SPF记录有关吗? 我该如何解决这个问题?
THX
邦迪
答案 0 :(得分:1)
在共享主机上发生这种情况,也可能是因为在Web服务器上有一个本地传送机制,即当您的Web服务器看到@ domain.com的电子邮件时,它认为它将是一个处理,而不是传递给实际的邮件服务器。
进入您的网络服务器面板(Cpanel或其他)并检查此域的电子邮件设置。确保domain.com
禁用“本地传送”或类似内容答案 1 :(得分:0)
您的主domain.com(没有www。)是否有CNAME记录?这将自动将域的mx记录引用到cname记录。
MX记录的特征有效载荷信息是完全的 邮件主机的限定域名和首选项值。主人 name必须直接映射到一个或多个地址记录(A或AAAA) DNS,不得指向任何CNAME记录。
答案 2 :(得分:0)
发送电子邮件的最佳方式是使用smtp方法:
http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php4/0.90/
示例文件:
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "mail.example.net"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "user@example.net"; // SMTP username
$mail->Password = "password"; // SMTP password
$mail->From = "example@example.net";
$mail->FromName = "Mailer";
$mail->AddAddress("destiny@example.net");
//$mail->AddReplyTo("info@example.com", "Information");
$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = "Here is the subject";
$mail->Body = "This is the HTML message body <b>in bold!</b>";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>