简单邮件传输协议(SMTP)发送电子邮件及路由的e-mail邮件服务器之间的协议处理。
Ruby 提供 Net::SMTP 类的简单邮件传输协议(SMTP)客户端的连接,并提供了两个新的方法:new 和 start.
new 带两个参数:
start 方法带有以下这些参数:
server - IP SMTP服务器名称,默认为localhost port - 端口号,默认为25 domain - 邮件发件人的域名,默认为 ENV["HOSTNAME"] account - 用户名,默认为 nil password - 用户密码,默认为 nil authtype - 授权类型,默认为 cram_md5SMTP对象有一个实例方法调用sendmail,后者通常会被用来做邮寄消息的工作。它有三个参数:
source - 字符串或数组或任何同每个迭代一次返回一个字符串。 sender - 一个字符串,它将会出现在电子邮件字段中。 recipients - 代表收件人的地址的字符串的字符串或数组例子:
下面是一个简单使用Ruby脚本的方法来发送一个电子邮件。试一次看看吧:
require 'net/smtp'message = <<MESSAGE_ENDFrom: Private Person <me@fromdomain.com>To: A Test User <test@todomain.com>Subject: SMTP e-mail testThis is a test e-mail message.MESSAGE_ENDNet::SMTP.start('localhost') do |smtp| smtp.send_message message, 'me@fromdomain.com', 'test@todomain.com'end
在这里已经放置了一个基本的电子邮件消息,使用文件,在这里同时注意正确格式化标题。一封邮件需要发件人,收件人,主题头,从电子邮件的主体有一个空白行分隔。
随着消息要发送邮件使用Net::SMTP连接到本地机器上的SMTP服务器,然后使用 send_message 方法,从地址,目的地址作为参数(即使地址电子邮件本身范围内,这些并非总是用来将邮件路由)。
如果还没有在机器上运行一个SMTP服务器,可以使用的Net::SMTP远程SMTP服务器进行通信。除非使用一个webmail服务(如Hotmail或雅虎邮件),电子邮件提供商将提供外发邮件服务器的细节,可以提Net::SMTP,具体如下:
Net::SMTP.start('mail.your-domain.com')
这行代码连接到SMTP服务器mail.your-domain.com 端口25。,而无需使用任何用户名或密码。不过,如果需要的话可以指定端口号或其他参数等。例如:
Net::SMTP.start('mail.your-domain.com', 25, 'localhost', 'username', 'password' :plain)
新闻热点
疑难解答