梨邮件不工作

时间:2013-10-19 01:53:57

标签: php email pear

我使用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;
编辑:这是使用上面第一版'from'的电子邮件标题和标题的样子 - 在这种情况下,我发送了一封电子邮件给自己作为收件人:

 '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)”。

这里缺少什么?

2 个答案:

答案 0 :(得分:0)

正如您可能知道或不知道的那样,对垃圾邮件进行了一场战争*。这是因为垃圾邮件发送者如此多产,以至于他们在服务器上使用了大量资源,如处理能力(用于过滤垃圾邮件)。如果我们不阻止它们,它们也有可能破坏电子邮件之类的有用性。因此,因为它们是一个主要的实际问题,互联网上有各种非常敏感的垃圾邮件过滤器会让你陷入垃圾邮件,原因包括发送过多的邮件反弹,发送到一个特别不幸的非活动e-邮件地址(称为垃圾邮件陷阱)等。可以想象,正在运行的反垃圾邮件软件正在使用格式的这种特定电子邮件作为检测垃圾邮件的启发式方法之一。可能有人认为使用它作为启发式是非理性的或过度敏感的,但正如我所提到的,对垃圾邮件的战争导致了一些非常敏感的垃圾邮件过滤机制。如果您想进行测试,可以尝试白名单来自电子邮件地址或关闭垃圾邮件过滤器(除了服务器端过滤器,电子邮件客户端和病毒扫描程序可能包含一些过滤功能)和看看垃圾邮件过滤器是否是罪魁祸首。

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

我从网站收到的通知告诉我,用户发给我的消息只是包含来自行的网站名称而不是人名。例如:

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

(注意 - 某些垃圾邮件过滤器可能很重要,因为from行中的网站名称与域名完全匹配。)

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

  1. 查看其他网站的其他“来自”行,看看他们是如何做的,然后试用您找到的任何模式。

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

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

    • 引用:麻省理工学院技术评论的“垃圾邮件大战”

答案 1 :(得分:0)

可能每个人都熟悉的网站的最佳示例是 - 我注意到像Craigslist这样的网站总是能够在我投放广告时将电子邮件发送给我(衣服,家具等)

还有其他一些示例,网站将其用户的一封电子邮件成功转发到我的收件箱。这就是我所追求的,因为这是我们网站需要做的事情 - 当用户需要联系其他用户时,他们通过我们的网站发送电子邮件(因为他们是如何了解其他用户的),我们需要将他们的电子邮件转发给我们的其他用户。

没有人(但是?)似乎对如何做到这一点有了具体的经验,所以我稍后会解决这个问题。