使用Ruby发送电子邮件而不安装/运行SMTP服务器?

How*_*ard 8 ruby email smtp sendmail

在Mac上,我可以使用命令从命令行发送电子邮件mail,但我肯定没有在我的MacBookPro上安装SMTP服务器.

那么,有没有SMTP服务器可以发送带有Ruby的电子邮件?我不关心速度,我只是想要一种无需额外软件即可发送电子邮件的方法.

sev*_*rin 5

您可以mail从Ruby代码中调用该命令.使用system或反引号或更复杂的东西,比如open3与系统命令交互...以下是对不同方法的一个很好的概述:http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_from_ruby/


Jam*_*Lim 5

关于mailsendmail

我不太了解mail,但是Google上的快速搜索结果似乎表明它使用后缀,后者是Mac上安装的默认SMTP服务器。换句话说,您已经在Macbook Pro上安装并正在运行SMTP服务器。

关于露比

因此,可以在没有SMTP服务器的情况下使用Ruby发送电子邮件吗?

是和否。您不需要在与Ruby进程相同的计算机上运行SMTP服务器。实际上,您甚至不需要运行自己的SMTP服务器。但是,您需要在某处的SMTP服务器发送电子邮件。

关于SMTP

文章在博闻网给出了什么SMTP做了很好的解释。本质上,您需要在某个可以接收您的电子邮件,与其他SMTP服务器进行对话并传递电子邮件进行传递的位置的SMTP服务器。使用Ruby,您可以将Net :: SMTP配置为连接到您选择的SMTP服务器。

关于您要做什么

如果要编写和执行将传递少量电子邮件的脚本,请在Gmail / Live上创建一个伪造的电子邮件帐户,然后使用其SMTP服务器发送电子邮件。

如果要构建并启动将向用户发送电子邮件的应用程序,请使用Mandrill,MailGun或SendGrid。Mandrill有免费套餐供您入门。

在大多数情况下,建议您不要运行自己的SMTP服务器,因为您的电子邮件可能会被标记为垃圾邮件。(Comcast可能还会认为您的网络上存在恶意软件。)像Mandrill这样的专业服务将帮助您设置SPF和DKIM记录,以对电子邮件进行身份验证并提高发送信誉。

(如果您只想在开发人员模式下测试电子邮件,请使用MailCatcher。)

结论

注册一个Mandrill帐户,然后在Ruby中使用Net :: SMTP连接到其SMTP服务器。不需要其他软件。


max*_*max 1

您的目标是从 CLI 编写和发送电子邮件吗?

有许多邮件程序宝石,包括mail。您或许还可以直接使用 Ruby 的 Net::SMTP 并让某些东西正常工作,具体取决于您想要做什么。