网站建设制作多少钱,一起做网站逛市场,怎么做弹幕小视频网站,辽宁建设工程信息网停用SMTP#xff08;Simple Mail Transfer Protocol#xff09;即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则#xff0c;由它来控制信件的中转方式。 
Ruby提供了 Net::SMTP 来发送邮件#xff0c;并提供了两个方法 new 和 start: 
new 方法有两个参数Simple Mail Transfer Protocol即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则由它来控制信件的中转方式。 
Ruby提供了 Net::SMTP 来发送邮件并提供了两个方法 new 和 start: 
new 方法有两个参数 
port number 默认为 25server name 默认为 localhost
start 方法有以下参数 
server - SMTP 服务器 IP, 默认为 localhostport - 端口号默认为 25account - 用户名默认为 nildomain - 邮件发送者域名默认为 ENV[HOSTNAME]password - 用户密码默认为nilauthtype - 验证类型默认为 cram_md5
SMTP 对象实例化方法调用了 sendmail, 参数如下 
source - 一个字符串或数组或每个迭代器在任一时间中返回的任何东西。sender -一个字符串出现在 email 的表单字段。recipients - 一个字符串或字符串数组表示收件人的地址。
实例 
以下提供了简单的Ruby脚本来发送邮件: 
实例 
require net/smtpmessage  MESSAGE_END
From: Private Person mefromdomain.com
To: A Test User testtodomain.com
Subject: SMTP e-mail testThis is a test e-mail message.
MESSAGE_ENDNet::SMTP.start(localhost) do |smtp|smtp.send_message message, mefromdomain.com, testtodomain.com
end 在以上实例中你已经设置了一个基本的电子邮件消息注意正确的标题格式。一个电子邮件要要FromTo和Subject文本内容与头部信息间需要一个空行。 使用Net::SMTP连接到本地机器上的SMTP服务器使用send_message方法来发送邮件方法参数为发送者邮件与接收者邮件。 
如果你没有运行在本机上的SMTP服务器您可以使用Net::SMTP与远程SMTP服务器进行通信。如果使用网络邮件服务如Hotmail或雅虎邮件您的电子邮件提供者会为您提供发送邮件服务器的详细信息: 
Net::SMTP.start(mail.your-domain.com) 
以上代码将连接主机为 mail.your-domain.com端口号为 25的邮件服务器如果需要填写用户名密码则代码如下 
Net::SMTP.start(mail.your-domain.com, 25, localhost, username, password, :plain) 
以上实例使用了指定的用户名密码连接到主机为 mail.your-domain.com端口号为 25的邮件服务器。 使用 Ruby 发送 HTML 邮件 
Net::SMTP同样提供了支持发送 HTML 格式的邮件。 
发送电子邮件时你可以设置MIME版本文档类型字符集来发送HTML格式的邮件。 
实例 
以下实例用于发送 HTML 格式的邮件 
实例 
require net/smtpmessage  MESSAGE_END
From: Private Person mefromdomain.com
To: A Test User testtodomain.com
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP e-mail testThis is an e-mail message to be sent in HTML formatbThis is HTML message./b
h1This is headline./h1
MESSAGE_ENDNet::SMTP.start(localhost) do |smtp|smtp.send_message message, mefromdomain.com, testtodomain.com
end 发送带附件的邮件 
如果需要发送混合内容的电子邮件需要设置Content-type为multipart/mixed。 这样就可以在邮件中添加附件内容。 
附件在传输前需要使用 pack(m) 函数将其内容转为 base64 格式。 
实例 
以下实例将发送附件为 /tmp/test.txt 的邮件 
实例 
require net/smtpfilename  /tmp/test.txt
# 读取文件并编码为base64格式
filecontent  File.read(filename)
encodedcontent  [filecontent].pack(m)   # base64marker  AUNIQUEMARKERbody EOF
This is a test email to send an attachement.
EOF# 定义主要的头部信息
part1 EOF
From: Private Person mefromdomain.net
To: A Test User testtodmain.com
Subject: Sending Attachement
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary#{marker}
--#{marker}
EOF# 定义消息动作
part2 EOF
Content-Type: text/plain
Content-Transfer-Encoding:8bit#{body}
--#{marker}
EOF# 定义附件部分
part3 EOF
Content-Type: multipart/mixed; name\#{filename}\
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename#{filename}#{encodedcontent}
--#{marker}--
EOFmailtext  part1  part2  part3# 发送邮件
begin Net::SMTP.start(localhost) do |smtp|smtp.sendmail(mailtext, mefromdomain.net,[testtodmain.com])end
rescue Exception  e  print Exception occured:   e  
end 
注意你可以指定多个发送的地址但需要使用逗号隔开。