0

我正在运行一项 cron 作业,每分钟检查一次 Gmail 帐户上的新电子邮件。如果发现任何新邮件,它会触发一个接收函数,开始如下:

  def receive(email)     
    # REPORT SOME INFORMATION ABOUT INBOUND EMAIL RECEIPT
    puts "SUBJECT: #{email.subject}" 
    puts "#{email.class}"
    puts email.to.inspect
    puts email.bcc.inspect
    puts email.from.inspect
    ...
  end

我只想处理在收件人或密件抄送字段中寻址系统的电子邮件。这个想法是用户不应该向其他人透露各种目标电子邮件地址。

问题是该函数似乎无法从作为“电子邮件”参数传递给该对象的 TMail 对象中提取密件抄送信息。TO 地址可以通过,但不能通过密件抄送。

有谁知道为什么会这样?

4

1 回答 1

1

TL;DR 版本:作为电子邮件客户端,您无法可靠地检索密件抄送字段。

当然它缺少密件抄送字段。一旦用于引导电子邮件,它就会从消息中删除。

BCC 表示盲抄本。并且用于复制消息中的人,而不将他们的地址提供给接收消息的每个其他人。如果传入的电子邮件仍然包含此信息,它将无法达到其目的。

您可能应该阅读关于寻址的RFC 2822部分。

您所询问的内容没有明确定义并且依赖于实现。邮件用户代理(Outlook/Thunderbird/Gmail/etc)或邮件传输/提交代理(将邮件路由给您的任何程序)可能会在您获得所需数据之前对其进行剥离。

于 2009-11-02T20:05:18.640 回答