从不同于主要域的域发送电子邮件?可能?

时间:2012-01-23 06:35:23

标签: php email dns

这可能是一个愚蠢的问题。我想知道我是否可以从服务器发送与domain1.com相关联的电子邮件,来自domain2.com并且来源显示来自domain2.com

我之所以这样做是因为我有一个我正在开发的应用程序,并希望从域中发送电子邮件,例如 - maildomain.com而不是来自domain.com

使用php的邮件功能发送电子邮件。

4 个答案:

答案 0 :(得分:0)

是的,你可以:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example-two.com' . "\r\n" .
    'Reply-To: webmaster@example-two.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

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

您应该设置一些内容,因此接收方不会将其标记为垃圾邮件:

  • 为接收域设置低优先级的DNS MX记录,指向发送服务器
  • 为发送服务器设置正确的反向DNS条目
  • ..

答案 1 :(得分:0)

电子邮件中的“发件人”地址完全是任意的。只要您有权将邮件提交到服务器的队列,就可以在其中放置任何所需的From地址。 president@whitehouse.gov,julian@wikileaks.org等。

要使用PHP的mail()函数执行此操作,请使用* $ additional_headers *。例如:

$to      = "whoever@example.com";
$subject = "This is an example!";
$message = "Hello,\n\nThis is message body.\n\nIsn't that nice?\n\n";
$headers = "From: El Presidente <president@whitehouse.gov>\r\n"
         . "X-foo: bar\r\n";

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

答案 2 :(得分:0)

可能?是肯定的。请参阅PHP.net中的以下示例。但是,我打算在这里放一些小字,因为我觉得你可能会遇到一些麻烦,我想在将来让你更容易。 ;)您当前的虚拟主机可能会阻止它,我从未见过它,但我听说它可能会发生。此外,还有一个名为SPF或发件人策略框架的东西,它是一个DNS记录,您可以设置该记录以确定哪些服务器可以代表您发送。许多服务器可以接收您的邮件,尤其是GMail检查有效的SPF。您所要做的就是在domain.com的名称服务器上添加TXT记录。它看起来应该是这样的:v=spf1 mx a:maildomain.com -all。这表示任何设置了MX记录的记录,以及从maildomain.com解析的IP都是有效的“非垃圾邮件”。此外,您将失败任何其他邮件来源。

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
  'Reply-To: webmaster@example.com' . "\r\n" .
  'X-Mailer: PHP/' . phpversion();

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

答案 3 :(得分:-1)

如果邮件服务器是open mail relay,那么是,您可以从其他域发送。它当然被视为一个漏洞,因为垃圾邮件发送者可以使用它来发送垃圾邮件。获取此功能的邮件服务器的配置取决于其平台,但您通常可以测试服务器通过telneting to the server on port 25自由中继邮件并进行ehlo测试的能力。