我找不到Mail gem https://github.com/mikel/mail的完整文档
对于文档,所有链接都是主github页面,但自述文件远未完成.有什么替代方法可以搜索源代码中的所有内容吗?
使用Mail gem(即Rails + ActionMailer),是否有一种干净的方式来获取收件人的显示名称?
我可以通过以下方式获取地址:
mail.to.first
Run Code Online (Sandbox Code Playgroud)
我可以使用以下格式获取格式化的显示名称+地址:
mail.header_fields.select{ |f| f.name == "To" }.first.to_s
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能得到显示名称部分(即在<
和之前>
).我知道有人会建议一个正则表达式,但这不是我想要的,因为我必须解析任何编码,这是Mail宝石可能已经做的事情.我是PHP中一个流行的Mailer库的作者,并且我知道在8位字符发挥作用时,在标题中假设前面的陷阱<
并且>
是人类可读的陷阱.
我可以做这个:
mail.header_fields.select{ |f| f.name == "To" }.first.parse.individual_recipients.first.display_name.text_value
Run Code Online (Sandbox Code Playgroud)
但必须有更好的方法吗?:)
我试图使用IMAP和ruby邮件gem获取gmail的主体.当我按照另一个堆栈溢出答案中的描述获取RFC822字段时,它工作正常..Fiedl非常好地描述了这种方法来回答类似的问题.
这种方法很棒,除了它需要获取RFC822,它也可以获取所有附件.是否有任何其他领域或其他方法我可以采取不获取附件但仍然使用ruby邮件gem来获得很好的解码体?
据我了解,我遇到了问题,因为在电子邮件地址中不使用 ASCII 符号
\n\n例子:
\n\n通知程序.rb
\n\nmail(to: "Tam\xc3\xb3n \xc3\x84RU\xc3\x84 <example@example.com>", subject: "Email subject")\n
Run Code Online (Sandbox Code Playgroud)\n\n有什么建议我可以如何处理这个案子吗?我更喜欢将用户名保留在地址中。
\n我将我的Rails应用程序从4.2.5升级到5.0.6.现在Mail邮件不会发送电子邮件.我似乎没有得到错误.我将Mail gem更新为最新版本但没有运气.我不知道还有什么可以尝试的.
我在跑步:
Rails 5.0.6
Ruby 2.3.0
邮件2.7.0
控制器/ send_email.rb
class SendEmail < ApplicationController
def initialize(to_address, from_address, email_pass, subject, body)
begin
options = {
:address => 'abc.prod.1234.secureserver.net',
:port => '465',
:domain => 'mydomain.com',
:user_name => from_address,
:password => email_pass,
:authentication => :login,
:ssl => true,
:openssl_verify_mode => 'none'
}
Mail.defaults do
delivery_method :smtp, options
end
Mail.deliver do
to to_address
from from_address
subject subject
body body
end
puts("\nSent message. From: #{from_address} To: #{to_address} \nMessage body: \n#{body}")
return …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下样式解析电子邮件
message = Mail.new(body) #where body is the RAW source from the email server
message.subject #=> the subject of the message as a string
message.from #=> shows who the email is from
Run Code Online (Sandbox Code Playgroud)
如果存在,我如何获得'reply-to'字段的值?宝石可以这样做吗?
我使用 ruby-mail 来阅读电子邮件。
除邮件正文外,所有内容均采用正确的可读格式。
邮件正文显示为其他某种编码格式。
我的代码是:
Mail.defaults do
retriever_method :pop3, :address => "some.email.com",
:port => 995,
:user_name => 'domain/username',
:password => 'pwd',
:enable_ssl => true
end
puts "From"
puts mail.from
puts "Sender:"
puts mail.sender
puts "To:"
puts mail.to
puts "CC:"
puts mail.cc
puts "Subject:"
puts mail.subject
puts "Date:"
puts mail.date.to_s
puts "MessageID:"
puts mail.message_id
puts "Body:"
#puts mail.body
Run Code Online (Sandbox Code Playgroud)
输出是:
来自 legalholdnotification123@emc.com
发件人:
至:bhavesh.sharma@emc.com
抄送:
主题:案例 4:合法保留通知
日期: 2012-04-24T14:46:25-04:00
消息ID:3298720.1335293185423.JavaMail.root@vm-bhaveshok7
身体:
日期:2012 年 5 月 5 日,星期六 09:45:08 -0700 Mime 版本:1.0 …