我正在使用Ruby通过Google应用发送电子邮件。正在发送和接收电子邮件。问题是,电子邮件会在我的Gmail收件箱中显示为发送给未公开的收件人,并且没有主题。
require 'rubygems'
require "tlsmail"
message = <<MESSAGE_END
From: From Address <from.address@googleappsdomain.com>
To: My Address <my.address@mydomain.com>
Subject: The Subject
Date: #{Time.now.rfc2822}
This is the email body.
MESSAGE_END
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start('smtp.gmail.com', 587, 'smtp.gmail.com', 'from.address@googleappsdomain.com', 'password', :login) do |smtp|
smtp.send_message(message, 'from.address@googleappsdomain.com', 'my.address@mydomain.com')
end
正如我所说,电子邮件已收到。标题看起来像:
from:From Address To:My Address Subject:The Subject Date:Tue,28 Feb 2012 09:54:22 -0500 from.address@googleappsdomain.com 发件人时间:上午9:54发送(格林威治标准时间-08:00)。当前时间:上午7:45。 ✆ 至: 日期:2012年2月28日星期二上午9:54
主题缺失。
这不是一个大问题,但如果可能的话,我想让它像典型的电子邮件一样进入。
答案 0 :(得分:0)
我不知道您是否坚定使用tlsmail
,但我在Pony和Google Apps方面取得了成功。这是我的一个改进的例子:
require 'pony'
email_data = {
:from => 'Mailer <mailer@mydomain.com>',
:to => 'admin@mydomain.com',
:subject => 'Some subject',
:body => 'A plain text body',
:html_body => haml :email, # render html email using haml
:port => '587',
:via => :smtp,
:via_options => {
:address => 'smtp.gmail.com',
:port => '587',
:enable_starttls_auto => true,
:user_name => 'mailer@mydomain.com',
:password => 'mailer_password',
:authentication => :plain,
:domain => 'mydomain.com'
}
}
Pony.mail(email_data)
我把它包装在一个帮助器中(我正在使用Sinatra)并传递特定的参数,将它们与默认选项合并(如下所示)。如果你想看到它,我会更新。