我正在使用gmail gem发送电子邮件,我需要跟踪这些电子邮件。我怎么能这样做?
我正在尝试使用message_id搜索电子邮件,但它会从我的收件箱中收集所有电子邮件,而我只想要特定电子邮件的回复。
这是我的实际代码:
*使用message_id *
保存电子邮件mail = gmail.deliver(email)
Email.create(:message_id => mail.message_id, :from => user.email,
:to => annotation.to, :body => annotation.content, :title => annotation.title,
:annotation => annotation, :user => user)
*使用message_id *
搜索邮件messages = gmail.inbox.mails(:message_id => email.message_id)
此致
FabrícioFerraride Campos
答案 0 :(得分:3)
你可以看看Net::IMAP。
uid = gmail.conn.uid_search(["HEADER", "Message-ID", "<324820.440351247482145930.JavaMail.coremail@bj163app31.163.com>"])[0]
#=> 103
message = Gmail::Message.new(gmail.inbox, uid)
#=> #<Gmail::Message0x12a72e798 mailbox=INBOX uid=103>
message.subject
#=> "hello world"
message.message_id
#=> "<324820.440351247482145930.JavaMail.coremail@bj163app31.163.com>"
找不到可以通过message_id.via搜索的方法,这样就可以获得特定的电子邮件。
答案 1 :(得分:3)
使用标准的gmail gem,这看起来效果很好
messages = gmail.inbox.mails(:query => ['HEADER', 'Message-ID', email.message_id])
答案 2 :(得分:0)
我能够使用this Gmail Gem执行此操作(不确定这是否与您正在使用的宝石相同)。
Message ID标头是生成的电子邮件对象的一部分。然后可以使用node_modules
进行搜索(在Gmail's Advanced Search help page中描述)。
以下是一个例子:
rfc822msgid