没有任何人有任何质量(和新)有关的信息发送邮件的通过邮件沟通红宝石的净::SMTP?我看到几个例子--最约会从2007年到2008年中期,没有人为我工作。我需要更多的目前的例子,采用最近的1.8.7释放。我也明白,如果文件不仅涵盖简单的例子,没有人真正的用途。

目前我收到一个错误:

 SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol

我不太熟悉SSL关于SMTP协议,因此这是所有失去我的。不幸的是Net::SMTP的文件仅复盖了该基地并没有提供一个完整的列表的各种潜在的OpenSSL::SSL情况下或所以我不能尝试各种各样的人。

无论如何,如果任何人有任何质量的信息,在得到这工作的照片,因为它将是最受赞赏。

好的。

有帮助吗?

解决方案

我实际上刚刚得到这个工作。写了一个快速脚本来测试它。

我得到一个不同的错误比(要求必需的。),我也发现了我不得不使用口587而不是465.

我发现了欺骗来获得它的工作在一个轨道的插件,我发现。(agilewebdevelopment.com/plugins/net_smtp_tls_support)

如果你eval'这个文件(它增加了tls支持的标准Net::SMTP库):

http://happiness-is-slavery.net/wp-content/rails-plugins/smtp_add_tls_support/lib/smtp_add_tls_support.rb

然后运行'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

显然,我下载上述文件的同一目录并把它命名为'smtp_tls.rb'

希望这可以帮助!

其他提示

其实下面的作品的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

YourAccountName看起来像“you@domain.com”&您的域大概可以是任何你喜欢的,但我用实际的域名。

你是接到smtp.gmail.com 口465我假设?.

openssl s_client -connect smtp.gmail.com:587

连接(00000003) 8298:错误:140770FC:SSL程序:SSL23_GET_SERVER_HELLO:未知的协议:s23_clnt.c:601:

错误看起来非常类似于你。以下命令执行工作:

 openssl s_client  -starttls smtp -connect smtp.gmail.com:587

因此,我认为发生了什么,你没有必需的。支持启用。我不知道该如何做到这红宝石买什么我没有找出是action_mailer_tls插件允许这种通过修补Net::SMTP。如红宝石1.8.7,Net::SMTP有这种支持。

如果您使用的是红宝石 < 1.8.7 在这里, 是patch。

您还需要有主题和消息的主体之间的两个换行符。否则,只有主体将被发送,并且该消息体将被留为空白。

msg = "Subject: My Subject Goes Here\n\nMy message goes here"

https://web.archive.org/web/20110113211408/http://blog.segment7.net/articles/2009/07/08/smtp_tls-1-0-3 可能会有帮助

这里有一些更多的人物来满足这样的要求...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top