当Media由Media Temple托管并且电子邮件由domains.live.com托管时,使用PHP发送电子邮件

时间:2011-10-11 03:12:18

标签: php email smtp dns

我在我的网站上设置了一个简单的表单来测试使用PHP发送电子邮件。

表单将三个文本字段的输入发布到email-form-process.php,如下所示:

<?php

    $email = $_POST['email'];

    $subject = "Test Email Worked";

    $msg = $_POST['comment'];

    mail ('$email','$subject','$msg');

    header('Location: email-form-confirm.php');
    exit();

?>

我在测试中回应了三个输入,以确保email-form-process.php从表单中接收它们。

我遇到的问题是我的任何电子邮件都没有收到该电子邮件。我已经测试了它发送到@ live.com电子邮件以及由domains.live.com托管的两个自定义域。

我使用domains.live.com来托管我网站的所有电子邮件。我通过我的主机MediaTemple设置了我的DNS记录,用于domains.live.com来处理我的电子邮件。这对于常规电子邮件非常有用,但我不确定使用domains.live.com托管的自定义域电子邮件在PHP中发送电子邮件的最佳方式。

当我的域由MediaTemple托管且我的电子邮件由domains.live.com托管时,如何通过PHP从me@mydomain.com发送电子邮件?

我还没有尝试过使用SMTP方法。在以下链接中找到的解决方案对我来说是一个好方向吗? http://www.9lessons.info/2009/10/send-mail-using-smtp-and-php.html

提前感谢您提供任何帮助!

-Mark

3 个答案:

答案 0 :(得分:4)

如果您在其他地方托管邮件,则需要为您的服务器禁用本地邮件。

http://kb.mediatemple.net/questions/519/How+to+enable+or+disable+local+mail+for+your+server%3F

答案 1 :(得分:0)

由于Live正在托管您的电子邮件,因此可能会阻止/将收到的电子邮件立即发送到垃圾邮件文件夹。您的Web服务器具有与live的电子邮件服务器不同的IP,因此它可能认为它正在发送伪造的电子邮件。

您可能还想查看sendgrid;他们将您的服务器IP放在白名单上,您的电子邮件肯定会通过。

希望这有帮助!

答案 2 :(得分:0)

您可以使用像PHPMailer这样的东西,这样可以更容易地使用SMTP邮件。无论如何,这绝对是一个更好的解决方案,而不是在PHP中使用内置的mail命令,因为PHPMailer可以为您提供更好的附件处理,收件人处理等,而无需编写您自己的标头以通过邮件功能发送。

您也可以从MediaTemple的服务器发送,只需将主机名设置为您的域。它不必匹配MX记录,尽管垃圾邮件过滤器会注意到这一点,因此您需要至少为SenderID和SPF配置域,以便将MediaTemple主机视为您域的有效电子邮件发件人。