Ruby on rails Rails Actionmailer-在反弹中查找原始标题
我通过cpanel建立了一个名为“eblast”的货运代理-bounceback@mydomain.com“哪些管道连接到跑步者,例如,查找任何关于通过rails接收电子邮件的教程。这部分工作得很好-我可以判断脚本正在运行,因为我已将其设置为使用记录器。我遇到的问题是无法在回退电子邮件中找到我的自定义标题X-Subscriber-Id:。有没有办法访问原始电子邮件数据,这样我就可以只进行正则表达式搜索,还是必须以更复杂的方式进行搜索 另一方面,如果我收到回跳,自动从数据库中删除电子邮件是否明智,或者是否需要采取某种附加步骤来避免恶意意图 编辑:发布代码Ruby on rails Rails Actionmailer-在反弹中查找原始标题,ruby-on-rails,email,bounce,email-bounces,runner,Ruby On Rails,Email,Bounce,Email Bounces,Runner,我通过cpanel建立了一个名为“eblast”的货运代理-bounceback@mydomain.com“哪些管道连接到跑步者,例如,查找任何关于通过rails接收电子邮件的教程。这部分工作得很好-我可以判断脚本正在运行,因为我已将其设置为使用记录器。我遇到的问题是无法在回退电子邮件中找到我的自定义标题X-Subscriber-Id:。有没有办法访问原始电子邮件数据,这样我就可以只进行正则表达式搜索,还是必须以更复杂的方式进行搜索 另一方面,如果我收到回跳,自动从数据库中删除电子邮件是否明智,
def receive(email)
# email.body doesn't work...how do I search for this? I know it's in the email...
account = /X\-Subscriber\-Id: (.*)/.match(email.body)[1].split("|") rescue nil
# If we've found the account info
logger.info "Nil?: #{account.nil?}"
if !account.nil?
id, private_id = account[0].to_i, account[1]
if @subscriber = Subscriber.find_by_id(id)
@subscriber.update_attribute(:bouncebacks, @subscriber.bouncebacks.to_i + 1)
logger.info "Faulty Account: #{@subscriber.email}"
end
else
# This is where we email the admin in case of failure to find an account (manual removal from database)
# This section is incomplete at this time
@from = "My Site <admin@mysite.com>"
@recipients = "admin@mysite.com"
@subject = "Bounceback could not be processed"
#@body = email.body -- What do I put here to simply re-send the email?
end
end
使用email.to_s而不是email.body。不,在传递失败时删除它一点也不明智,您可以让某人的邮件服务器正在运行维护或任何可能触发您的系统的数字或条件。我实际上已将其设置为在运行的“反弹计数”中添加1。当它达到3时,它将从数据库中删除电子邮件。每两个月,每次反弹都会减少1。我想这是一个不错的解决方案,但值得这么麻烦吗?此外,如果你发布了你现在用来接收电子邮件的代码,这可能会很有帮助。事实证明,这是一封简单的电子邮件。