【问题标题】:How do I get the original sender from a forwarded email using Rails 3 mail gem?如何使用 Rails 3 邮件 gem 从转发的电子邮件中获取原始发件人?
【发布时间】:2016-05-15 15:07:07
【问题描述】:

我正在尝试将电子邮件转发到我的 Rails3/Ruby 1.9.2 应用程序,我需要获取发件人的电子邮件地址。

有人知道如何使用新的 Rails 3 邮件来做到这一点吗?

我也可以从发件人那里获得接收或发送的时间吗?

【问题讨论】:

  • 请解释完整的流程。
  • @Roman so rob 向 jane 发送电子邮件,然后 jane 将电子邮件转发到 rails3 应用程序保管箱。我想得到抢劫的电子邮件地址和姓名。有什么想法吗?
  • 这真的取决于流程,以及“转发”在这种情况下的真正含义。
  • 我认为瑞克要问的是如何查看邮件服务器是否转发邮件。如果您谈论查看发送消息的原始人类是谁,那么没有可靠的方法可以做到这一点。邮件客户端完全不同,您不太可能可靠地实现这一点。有时可以传递原始消息 ID,但这无济于事,除非您也跟踪第一个人消息

标签: ruby-on-rails ruby ruby-on-rails-3 email


【解决方案1】:

根据文档here

你应该可以打电话

mail.envelope_from

【讨论】:

  • 如果被转发,则信封.from 将是转发代理的地址。
  • 谢谢大家,但我想从发件人那里获取地址,而不是转发它的人。有什么想法吗?
  • @rick 这不是 Rails 问题。基本上这些信息是不可用的。好吧,它有时是转发消息的一部分,但您无法可靠地获取该信息。如果原始邮件在您的系统中进行查找,则可能会有一个标头作为原始邮件的 id,但这直接取决于发件人的电子邮件客户端。
  • 一开始不知道是改了还是错了:应该是:mail.envelope_from
【解决方案2】:

通常,转发邮件服务器会将其转发的地址作为标头传递。在 CloudMailin,我们正在尝试传递 google 和其他一些服务器添加的标头 x-forwarded-。这不是保证,但如果您的服务器设置了一个标头并且您只使用一个标头,它将是一致的,因此您可以依赖它。

【讨论】:

  • 从发送者发送的时间也应该在发送的标题中。如果失败,您可以尝试从标头接收到的第一跳。
猜你喜欢
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 2018-06-01
  • 2020-09-25
相关资源
最近更新 更多