hum*_*der 24 ruby smtp email-integration ruby-1.8
有没有人有关于使用Ruby的Net :: SMTP通过Gmail发送邮件的任何质量(和最新)信息?我见过几个例子 - 大部分都是从2007年到2008年中期,但没有一个适合我.我需要更多当前使用最新1.8.7版本的示例.如果文档不仅涵盖了没有人真正使用的简单示例,我也很感激.
目前我收到一个错误:
SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol
Run Code Online (Sandbox Code Playgroud)
关于SMTP协议,我对SSL并不十分熟悉,所以这一切都在我身上丢失了.不幸的是,Net :: SMTP文档只涵盖了基础,并没有提供各种潜在的OpenSSL :: SSL上下文的完整列表,所以我不能尝试各种各样的.
无论如何,如果有任何关于如何使用Gmail的质量信息,我们将非常感激.
最好.
Dav*_*vid 49
实际上下面适用于没有插件或gem的gmail,至少使用Ruby 1.9.1p376,但是好运找到文档会告诉你:
require 'net/smtp'
msg = "Subject: Hi There!\n\nThis works, and this part is in the body."
smtp = Net::SMTP.new 'smtp.gmail.com', 587
smtp.enable_starttls
smtp.start(YourDomain, YourAccountName, YourPassword, :login) do
smtp.send_message(msg, FromAddress, ToAddress)
end
Run Code Online (Sandbox Code Playgroud)
YourAccountName看起来像'you@domain.com'和YourDomain可能是你喜欢的任何东西,但我使用的是实际的域名.
Jer*_*ops 10
我其实刚刚开始工作了.写了一个快速的脚本来测试它.
我得到了一个与你不同的错误(需要STARTTLS),我还发现我必须使用端口587而不是465.
我找到了让它在我找到的Rails插件中运行的技巧.(agilewebdevelopment.com/plugins/net_smtp_tls_support)
如果你'评估'这个文件(它增加了对标准Net :: SMTP库的支持):
然后运行'Net :: SMTP.enable_tls()'
一切似乎都很好.
这是我的代码:
require 'rubygems'
require 'net/smtp'
eval File.read("smtp_tls.rb")
Net::SMTP.enable_tls()
FROM_EMAIL = "REMOVED"
PASSWORD = "REMOVED"
TO_EMAIL = "REMOVED"
msgstr = <<END_OF_MESSAGE
From: Your Name <#{FROM_EMAIL}>
To: my phone <#{TO_EMAIL}>
Subject: text message
Date: Sat, 23 Jun 2001 16:26:43 +0900
Message-Id: <unique.message.id.string@example.com>
This is a test message.
END_OF_MESSAGE
Net::SMTP.start('smtp.gmail.com', 587, 'gmail.com',
FROM_EMAIL, PASSWORD, :plain) do |smtp|
smtp.send_message msgstr, FROM_EMAIL, TO_EMAIL
end
Run Code Online (Sandbox Code Playgroud)
显然,我将上述文件下载到同一目录并将其命名为"smtp_tls.rb"
希望这可以帮助!