2

出于某种原因,我可以在 yahoo.com 上收到带有以下代码的电子邮件,但不能在 hotmail.com 上收到?有人可以解释一下吗?

$usr = "bob@hotmail.com";
$subject = "Test Email";
$from = "noreply@test.com";
ini_set("sendmail_from", $usr);
$message = "<html><body style=\"font-family: Tahoma, Verdana, Arial; font-size: 12px; color: #444;\">
        <h1 style=\"font-family: Tahoma, Verdana, Arial; font-size: 16px; color: #111;\">This is an email</h1>
        <span style=\"background: #CCC; display: block; padding: 20px;\"><br><br>
        <b>This is a test.</b></body></html>";
$headers  = "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL;
$headers .= "From: Test.com<$from>" . PHP_EOL;
mail($usr, $subject, $message, $headers);
echo "<b>to:</b>$usr<br>";
echo "<b>subject:</b>$subject<br>";
echo "<b>msg:</b>$message<br>";
echo "<b>headrs:</b>$headers<br>";

我试了很多次,还是不行。但它立即与 yahoo.com 合作。

注意:没有收到垃圾邮件、垃圾邮件或任何东西。我的 iPhone 上也没有收到与该帐户相关联的电子邮件。:(

4

3 回答 3

0

可能是垃圾邮件过滤器起作用了,因为某些标头尚未传递给它的满意。

您可以使用经过测试的现有脚本之一,例如PHPMailer ,而不是编写自己的邮件脚本实现。

于 2012-11-10T18:07:25.003 回答
0

这可能不正确,但并非每个邮件系统(例如 google、yahoo)都不支持这些字体。也许 Hotmail 正试图阻止我的其他问题中的字体。Hotmail 已经升级了他们的垃圾邮件过滤功能,一些来自软件的电子邮件也无法通过。

于 2012-11-10T18:13:37.100 回答
0

披露:我是 AlphaMail 背后的开发者之一

确切地说出这里的问题并不容易。这些电子邮件最终是垃圾邮件,还是 Hotmail 拒绝了您的邮件?如果邮件被拒绝,可能是由于 Hotmail 由于某种原因阻止了您的域。如果它在共享主机上,则可能是由于垃圾邮件。如果您想找出确切的原因(垃圾邮件域、缺少 SPF、缺少 DKIM),请尝试从您的服务器手动连接到 Hotmail 并手动发送电子邮件。这样,您将掌握错误而不是事后猜测。

如果您不想这样做,只想让它“工作”,我建议您使用事务性电子邮件服务,例如:

为什么?

  • 您不必过多考虑电子邮件传递。
  • 统计数据。让您跟踪总发送/点击/打开/退回。
  • 通常基于 Web 服务而不是 SMTP。即更容易处理。
  • 更简洁的代码(至少如果您使用 AlphaMail 将数据与表示分离)。
  • 可扩展且面向未来。

如果您选择使用 AlphaMail,您可以使用AlphaMail PHP-client

例子:

include_once("comfirm.alphamail.client/emailservice.class.php");

$email_service = AlphaMailEmailService::create()
    ->setServiceUrl("http://api.amail.io/v1")
    ->setApiToken("YOUR-ACCOUNT-API-TOKEN-HERE");

$person = new stdClass();
$person->userId = "1234";
$person->firstName = "John";
$person->lastName = "Doe";
$person->dateOfBirth = 1975;

$response = $email_service->queue(EmailMessagePayload::create()
    ->setProjectId(12345) // Your AlphaMail project (determines template, options, etc)
    ->setSender(new EmailContact("Sender Company Name", "from@example.com"))
    ->setReceiver(new EmailContact("Joe Doe", "to@example.org"))
    ->setBodyObject($person) // Any serializable object
);

AlphaMail 的另一个优点是您可以直接在AlphaMail Dashboard中编辑您的模板,并且您可以使用Comlang 模板语言来格式化您的电子邮件。

<html>
    <body>
        <b>Name:</b> <# payload.firstName " " payload.lastName #><br>
        <b>Date of Birth:</b> <# payload.dateOfBirth #><br>

        <# if (payload.userId != null) { #>
            <a href="/sign-up">Sign Up Free!</a>
        <# } else { #>
            <a href="/login?id=<# payload.userId #>">Sign In</a>
        <# } #>
    </body>
</html>
于 2012-11-11T13:11:31.703 回答