1

使用 PHP mail() 函数时,当我在消息中的某处使用“utvecklat”一词时,电子邮件会进入垃圾文件夹。(在哪里都无所谓)

但是,当我从 Outlook 向另一个 Outlook 帐户(在同一邮件服务器中)发送电子邮件时,它会进入收件箱。

因此,我认为问题与邮件标题有关。

我正在使用这个 PHP 代码:

$subject='=?UTF-8?B?'.base64_encode($subject).'?=';
$emailTo="{$toEmail}";

$boundary = md5(date('U'));

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative;boundary={$boundary}\r\n";
$headers .= "From: \"{$fromName}\" <{$fromEmail}>\r\n";

$message = "This is a MIME encoded message."; 

$message .= "\r\n\r\n--" . $boundary . "\r\n";
$message .= "Content-type: text/html;charset=utf-8\r\n\r\n";
$message .= $message_tmp;

$message .= "\r\n\r\n--" . $boundary . "--";

mail($emailTo, $subject, $message, $headers, "-f {$fromEmail}");

电子邮件应为 HTML 格式。不管我是否使用“utv ecklat ”,电子邮件都会进入垃圾文件夹。

那么,我应该怎么做才能避免 Outlook 中的垃圾邮件过滤器呢?(必须与我的电子邮件标题有关,因为同一邮件服务器中从 Outlook 到 Outlook 的邮件会进入收件箱。)

谢谢!

更新!

在这里,您有一封从 Outlook 帐户发送到另一个帐户的电子邮件。有人可以将所有这些标头“转换”为正确的 PHP mail() 代码吗?谢谢!

Return-Path: <example@domain.com>
Delivered-To: robin@example.com
Received: from localhost (localhost [127.0.0.1])
    by example.example.com (Postfix) with ESMTP id 9C67EC21B12
    for <robin@example.com>; Sat,  7 Apr 2012 17:58:14 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at example.example.com
X-Spam-Flag: NO
X-Spam-Score: -2.47
X-Spam-Level: 
X-Spam-Status: No, score=-2.47 required=6.31 tests=[ALL_TRUSTED=-1,
    BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_HTML_MOSTLY=0.428,
    TVD_SPACE_RATIO=0.001] autolearn=ham
Received: from example.example.com ([000.000.000.00])
    by localhost (example.example.com [127.0.0.1]) (amavisd-new, port 10024)
    with ESMTP id HIlqLaU+2IIL for <robin@example.com>;
    Sat,  7 Apr 2012 17:58:11 +0200 (CEST)
Received: from Ciccidator (00-000-00-000-no56.tbcn.telia.com [00.00.00.000])
    by example.example.com (Postfix) with ESMTPA id 866F2C2059C
    for <robin@example.com>; Sat,  7 Apr 2012 17:58:11 +0200 (CEST)
From: "Example Sender" <example@domain.com>
To: <robin@example.com>
Subject: utvecklat
Date: Sat, 7 Apr 2012 17:58:01 +0200
Message-ID: <000001cd14d7$35d38070$a17a8150$@example.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0001_01CD14E7.F95C9E90"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: Ac0U1zWPte9QsazETMuTKG6LDnf1fg==
Content-Language: sv
4

3 回答 3

2

忽略垃圾邮件涉及很多方面,并且永远不可能是 100% 的解决方案。因为电子邮件过滤可能因一个跨度引擎而异。

  • 确认您始终收到邮件的最佳方法之一是将发件人的电子邮件地址添加到收件人的通讯簿中。

  • 另外,您应该确认发件人的电子邮件是否未在互联网上列入黑名单。

  • 始终确认您已发送带有正确标题的电子邮件。

  • 使用电子邮件库,如PHP Mailer

更进一步:查看这个关于 MX 条目的答案。

于 2012-04-07T15:54:00.520 回答
0

也许使用PHPMailer可以解决您的问题。测试一下...

于 2012-04-07T15:58:17.783 回答
0

如果您的“发件人:”标头包含的域与发送邮件的服务器的域不匹配,Outlook 可能会出错。

Outlook 是否接受来自脚本但不包含该词的电子邮件?

您可以从 gmail 帐户或其他“真实”电子邮件客户端将这个词发送到您的 Outlook 收件箱吗?

如果这两个问题的答案都是“是”,那么我建议查看已接受电子邮件中的标题并准确复制它们

此外, \r 不仅需要 \n iirc

祝你好运,

于 2012-04-07T15:53:22.347 回答