2011-10-11 81 views
2

我在我的网站上设置了一个简单的表单,用于测试使用PHP发送电子邮件。当域名由Media Temple主办,电子邮件由domains.live.com托管时,用PHP发送电子邮件

形式帖子三个文本字段中输入电子邮件形式-process.php,它看起来像这样:

<?php 

    $email = $_POST['email']; 

    $subject = "Test Email Worked"; 

    $msg = $_POST['comment']; 

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

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

?> 

我在测试呼应了三个输入以确保电子邮件的形式 - process.php从窗体接收它们,它是。

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

我使用domains.live.com为我的网站托管我的所有电子邮件。我通过我的主机MediaTemple为domains.live.com处理我的电子邮件。这对于定期发送电子邮件非常有用,但我不确定使用由domains.live.com托管的自定义域电子邮件以PHP发送电子邮件的最佳方式。

当我的域名由MediaTemple托管,我的电子邮件由domains.live.com托管时,如何通过PHP从[email protected]发送电子邮件?

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

非常感谢您提供任何帮助!

马克

+1

您是否问过MT的支持,如果他们有sendmail的设置和配置?如果是这样,您应该可以从任何电子邮件域发送邮件。事实上,'phpinfo()'应该能够告诉你它是否可用。 –

+0

另外,如果该PHP页面没有以某种方式受到保护(用户必须登录),则可能会有垃圾邮件脚本等待发生。 –

+0

谢谢Jared。我检查了phpinfo()和sendmail_form'没有值',并且sendmail_path确实有路径。 SMTP也被设置为'localhost'。我应该寻找什么?当我联系MediaTemple时,我应该问他们什么?再次感谢! –

回答

0

由于Live托管电子邮件,它可能会阻止/立即向垃圾邮件文件夹发送来的电子邮件。您的网络服务器拥有与实时电子邮件服务器不同的IP,因此它可能认为它发送的是虚假电子邮件。

你可能也想看看sendgrid;他们将您的服务器IP置于白名单中,您的电子邮件将完全通过。

希望这会有所帮助!

+0

谢谢埃里克。在我寻找一个好的整体解决方案时,我会记住sendgrid。 –

0

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

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