Ruby电子邮件发送未公开的收件人

时间:2012-02-28 16:11:12

标签: ruby email

我正在使用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

主题缺失。

这不是一个大问题,但如果可能的话,我想让它像典型的电子邮件一样进入。

1 个答案:

答案 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)并传递特定的参数,将它们与默认选项合并(如下所示)。如果你想看到它,我会更新。