[英]Parsing emails with ActionMailer::Base receive method
我想知道是否有一種方法可以解析收到的電子郵件。
例如,某人向我發送了以下電子郵件:
{
product: "x_product",
quantity: "1",
price: "15",
}
我想要的是一種獲取此信息並將其插入數據庫的方法,我知道ActionMailer :: Base中有一個方法稱為接收。 這是正確的方法嗎? 如何解析呢?
是的,這是正確的方法,只是Google“接收帶有紅寶石的郵件”-有很多教程可以指導您。
解析取決於您將要接收的數據類型。 這看起來像JSON,因此您只需讓JSON解析器完成工作,它將為您提供適當的Ruby數據結構。 其余的(放入數據庫中)可以由模型處理。
它看起來像這樣:
class MailReceiver < ActionMailer::Base
def self.receive(message)
# depending on your Rails version you can use either TMail or Mail to parse the raw mail
mail = TMail::Mail.parse(message)
# parse the JSON
my_data = ActiveSupport::JSON.decode(mail.body)
# create something with the data
MyModel.create(my_data)
end
end
我沒有介紹從郵箱中實際提取郵件的過程。 再說一次:用谷歌搜索,那里有大量的教程。 看看Fetcher ,它對我一直很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.