Ruby 教程 之 Ruby 发送邮件 - SMTP 4

简介: Ruby 发送邮件 - SMTP

Ruby 教程 之 Ruby 发送邮件 - SMTP 4

Ruby 发送邮件 - SMTP

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

Ruby提供了 Net::SMTP 来发送邮件,并提供了两个方法 new 和 start:

发送带附件的邮件
如果需要发送混合内容的电子邮件,需要设置Content-type为multipart/mixed。 这样就可以在邮件中添加附件内容。

附件在传输前需要使用 pack("m") 函数将其内容转为 base64 格式。

实例

以下实例将发送附件为 /tmp/test.txt 的邮件:

实例

require 'net/smtp'

filename = "/tmp/test.txt"

读取文件并编码为base64格式

filecontent = File.read(filename)
encodedcontent = [filecontent].pack("m") # base64

marker = "AUNIQUEMARKER"

body =<<EOF
This is a test email to send an attachement.
EOF

定义主要的头部信息

part1 =<
To: A Test User test@todmain.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}--
EOF

mailtext = part1 + part2 + part3

发送邮件

begin
Net::SMTP.start('localhost') do |smtp|
smtp.sendmail(mailtext, 'me@fromdomain.net',
['test@todmain.com'])
end
rescue Exception => e
print "Exception occured: " + e
end
注意:你可以指定多个发送的地址,但需要使用逗号隔开。

目录
相关文章
|
7天前
|
API 网络安全 数据安全/隐私保护
SMTP邮件邮箱API发送邮件的方法和步骤
使用SMTP邮件邮箱API(如AokSend)发送邮件涉及6个步骤:获取SMTP服务器地址和端口,进行身份验证,构建邮件内容,连接到服务器,发送邮件及处理结果。例如,Gmail的SMTP服务器地址是smtp.gmail.com,端口587。此方法适用于程序化发送邮件,确保安全并支持大规模发信服务。
|
2月前
|
数据采集 Web App开发 数据处理
Ruby网络爬虫教程:从入门到精通下载图片
Ruby网络爬虫教程:从入门到精通下载图片
|
3月前
|
JSON 数据格式 Ruby
|
3月前
|
JSON Ubuntu Linux
|
3月前
|
存储 JSON 数据格式
|
3月前
|
安全 Ruby
|
3月前
|
调度 Ruby
|
3月前
|
人工智能 BI 计算机视觉
|
3月前
|
Ruby
|
3月前
|
Ruby