-1

我使用 Pear 将我们网站的一个用户(“发件人”)电子邮件中继给另一个用户(“收件人”)失败,因为收件人用户总是在他们的垃圾邮件文件夹中收到邮件。对于以下解释,我们的网站称为“oursite.com”。

在对“标题”的“发件人”部分进行了 2 天的大量实验后,我已经缩小了范围,如下所示(为了这个例子,我的名字是Sam Hambone,我不知道“发件人:”在电子邮件的标题中是抓住我的名字并使用它,如下所述):

      $senderEmail = "IamTheSender@gmail.com";

      // this version of the 'from' variable makes the 'From' in the email's title
      // look correct, like this: "IamTheSender@gmail.com (IamTheSender@gmail.com)"
      // but when the recipient gets the mail, it will ALWAYS go into the 'junk'
      // or 'spam' email folder of the recipient's inbox.  NOTE: using angle brackets
      // instead of parentheses here changes nothing.
      $from = $senderEmail . " (" . $senderEmail . ")";

      // this second version of 'from' makes the mail arrive correctly
      // in the recipient's Inbox and not in their spam/junk folder, but
      // the "From:" line in the email's title looks like this:
      // "Sam Hambone (IamTheSender@gmail.com)"
      $from = $senderEmail;

编辑:这是使用上面第一个版本的“发件人”的电子邮件标题和标题的样子——在这种情况下,我作为收件人向自己发送了一封电子邮件:

 'Sender has a question for you, Mr. Recipient!'
 Sam Hambone (IamTheSender@gmail.com) << this is wrong -- it's mixing my (recipient)
                                         real name with the sender's email address!!
 To: sammyhambone@hotmail.com
 From:  IamTheSender@gmail.com
 Sent:  Fri 10/18/13 5:49 PM
 To:    sammyhambone@hotmail.com (sammyhambone@hotmail.com)

这是其余的代码 - 此代码成功发送了电子邮件,但是通过使用上述版本的from变量之一,我发现电子邮件转到收件人的垃圾文件夹或“发件人:”部分如上所述,电子邮件的标题搞砸了:

  $theRecipient = "aLoyalUser@hotmail.com";
  $to = $theRecipient . " (" . $theRecipient . ")";   
  $subject = "the subject is Pear and emailing.";
  $body = "Ach, megotts lads, comes the blarney stone."

  $host = "smtp.1and1.com";   
  $port = "25";      
  $username = "myAuthName@oursite.com";  
  $password = "12345";   

  $smtp = Mail::factory('smtp',
               array ('host' => $host,
                 'port' => $port,
                 'auth' => true,
                 'username' => $username,
                 'password' => $password));

 $headers['From'] = $from; // one of the two 'from' versions given above 
 $headers['To'] = $to;
 $headers['Subject'] = $subject;            

 $mail = $smtp->send($theRecipient, $headers, $body);

    // tried this, no help
 $mail = $smtp->send($to, $headers, $body);

我需要将发件人的电子邮件信息发送到收件人的收件箱,但电子邮件标题的“发件人:”部分不得显示“Sam Hambone (IamTheSender@gmail.com)”。

这里缺少什么?

4

2 回答 2

0

您可能知道也可能不知道,垃圾邮件*. 这是因为垃圾邮件发送者非常多产,以至于他们在服务器上使用了大量资源,例如处理能力(用于过滤垃圾邮件)。如果我们不阻止它们,它们还威胁要破坏诸如电子邮件之类的东西的有用性。因此,因为它们是一个主要的实际问题,互联网上有各种非常敏感的垃圾邮件过滤器,它们会将您置于垃圾邮件中,原因包括发送太多退回的邮件、发送到一个特别不幸的不活跃电子邮件-邮件地址(称为垃圾邮件陷阱)等。可以想象,正在运行的反垃圾邮件软件正在使用此特定格式的电子邮件作为检测垃圾邮件的启发式方法之一。有人可能会争辩说,将其用作启发式是不合理或过于敏感的,但正如我已经提到的,垃圾邮件的战争导致了一些非常敏感的垃圾邮件过滤机制。如果您想进行测试,也许可以尝试将发件人电子邮件地址列入白名单或关闭垃圾邮件过滤器(除了服务器端过滤器,电子邮件客户端和病毒扫描程序可能包括一些过滤功能)和看看垃圾邮件过滤器是否是罪魁祸首。

更新:既然我知道了这个电子邮件软件的目的(将一个用户从站点发送的消息传递给另一个用户,同时可能保护他们的隐私),我可以提供一个更好的建议:

我从网站收到的通知告诉我用户向我发送了消息,只是在发件人行中包含网站的名称,而不是一个人的姓名。例子:

网站名称 (no-reply@websitename.com)

(注意 - 对于某些垃圾邮件过滤器来说,发件人行中的网站名称与域名完全匹配可能很重要。)

如果这似乎无法通过垃圾邮件过滤器,我会尝试以下想法:

  1. 查看其他网站的其他“来自”行,看看他们是如何做到的,并尝试你发现的任何模式。

  2. 考虑注册电子邮件信誉服务,看看他们是否可以帮助您。

  3. 通过确定哪个特定的垃圾邮件软件标记了这些问题,然后找出他们有多少用户来测试这个怪癖是一个大问题还是一个小问题。您还可以尝试将这些电子邮件发送到各种其他电子邮件服务,以查看它们是否是垃圾邮件。可能是您这里有一些旧的或不受欢迎的垃圾邮件过滤器,其行为方式实际上并不能说明您的大多数电子邮件会发生什么。

    • 引文:《麻省理工科技评论》的“垃圾邮件大战”
于 2013-10-19T02:13:03.927 回答
0

可能每个人都熟悉的网站的最佳示例是——我注意到像 Craigslist 这样的网站总是能够在我投放广告来销售某些东西(衣服、家具等)时收到发送给我的电子邮件。

还有其他一些例子,网站成功地将用户的一封电子邮件“中继”到我的收件箱。这就是我所追求的,因为这就是我们的网站需要做的——当用户需要联系另一个用户时,他们会通过我们的网站发送电子邮件(因为这就是他们了解其他用户的方式)并且我们需要将他们的电子邮件转发给我们的其他用户。

没有人(还没有?)似乎对如何做到这一点有具体的经验,所以我会稍微结束这个问题。

于 2013-10-20T14:39:36.820 回答