簡體   English   中英

使用ActionMailer :: Base接收方法解析電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM