2012-02-28 86 views
0

我正在使用Ruby通过Google应用发送电子邮件。电子邮件正在发送和接收。问题在于该电子邮件显示在我的Gmail收件箱中,因为它被发送给未公开的收件人,并且没有任何主题。Ruby电子邮件发送未公开收件人

require 'rubygems' 
require "tlsmail" 

message = <<MESSAGE_END 
From: From Address <[email protected]> 
To: My Address <[email protected]> 
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', '[email protected]', 'password', :login) do |smtp| 
smtp.send_message(message, '[email protected]', '[email protected]') 
end 

正如我所说,收到的电子邮件。标题如下:

from:From地址To:我的地址标题:标题日期:2012年2月28日星期二09:54:22 -0500 [email protected] sender-time:发送时间为9 :54 AM(GMT-08:00)。当前时间:上午7:45。 ✆至: 日期:2012年2月28日星期二上午9:54

由于缺少主题。

这并不是什么大问题,但我想尽可能使它像一个典型的电子邮件进来。

回答

0

我不知道您是否坚决使用tlsmail,但我已经在Pony和Google Apps上取得了成功。下面是我的一个变形例:

require 'pony' 

email_data = { 
    :from    => 'Mailer <[email protected]>', 
    :to    => '[email protected]', 
    :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    => '[email protected]', 
    :password     => 'mailer_password', 
    :authentication   => :plain, 
    :domain     => 'mydomain.com' 
    } 
} 
Pony.mail(email_data) 

我的助手(我使用西纳特拉)这个包裹起来,并通过在特定的参数,合并那些使用默认选项(如图所示)。如果您也想看,我会更新。

+0

非常感谢,效果很好。 – Peter 2012-02-29 22:57:28

+0

@Peter为了让您知道,如果您要制作某种您想要回复的用户生成电子邮件(例如联系表单,您收到回复用户),则需要使用这些电子邮件与您将回应的电子邮件不同。这是Google Apps的局限性,但试图弄清楚它可能令人沮丧。 – 2012-03-01 06:06:21

相关问题