【问题标题】:Ruby on Rails Gets Body Message IMAPRuby on Rails 获取正文消息 IMAP
【发布时间】:2018-07-06 11:42:51
【问题描述】:

我目前正在开发邮件应用程序,该应用程序可以发送电子邮件并拥有收件箱。

所以,我关注这个guide

imap = Net::IMAP.new('mail.example.com')
imap.authenticate('LOGIN', 'joe_user', 'joes_password')
imap.examine('INBOX')
imap.search(["RECENT"]).each do |message_id|
  envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
  puts "#{envelope.from[0].name}: \t#{envelope.subject}"
end

但是,我无法获取电子邮件的内容。我找不到任何保留电子邮件内容的变量。有人可以帮助我吗?谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby email imap


    【解决方案1】:

    按照此处imap mail 的说明,以下内容适用于我的gmail

    require 'net/imap'
    
    imap = Net::IMAP.new("imap.gmail.com", 993, usessl = true)
    
      imap.login("username", "password")
      imap.examine('INBOX')
      imap.search(["ALL"]).each do |message_id|
        env = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
        raw_message = imap.fetch(message_id,'RFC822').first.attr['RFC822']
        puts "#{env.from[0].name}: \t#{env.subject}"
        puts "raw message: #{raw_message}"
      end
    

    【讨论】:

    • 它对我不起作用,我认为这是因为我不是在获取 GMail,而是自己的邮件托管。
    【解决方案2】:

    我发现我们需要用这个来获取不同的部分:

    <% body = imap.fetch(message_id,'BODY[TEXT]')[0].attr['BODY[TEXT]'] %>
    <p><%= body %></p>
    

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多