- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章在Ruby中利用Net::SMTP类发送电子邮件的教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
简单邮件传输协议(SMTP)发送电子邮件及路由的e-mail邮件服务器之间的协议处理.
Ruby 提供 Net::SMTP 类的简单邮件传输协议(SMTP)客户端的连接,并提供了两个新的方法:new 和 start. 。
new 带两个参数
start 方法带有以下这些参数
SMTP对象有一个实例方法调用sendmail,后者通常会被用来做邮寄消息的工作。它有三个参数:
例子
下面是一个简单使用Ruby脚本的方法来发送一个电子邮件。试一次看看吧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
require
'net/smtp'
message = <<
MESSAGE_END
From: Private Person <me
@fromdomain
.com>
To:
A
Test User <test
@todomain
.com>
Subject:
SMTP
e-mail test
This is a test e-mail message.
MESSAGE_END
Net::
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,具体如下:
1
|
Net::
SMTP
.start(
'mail.your-domain.com'
)
|
这行代码连接到SMTP服务器mail.your-domain.com 端口25。,而无需使用任何用户名或密码。不过,如果需要的话可以指定端口号或其他参数等。例如:
1
2
3
4
|
Net::
SMTP
.start(
'mail.your-domain.com'
,
25
,
'localhost'
,
'username'
,
'password'
:plain
)
|
这个例子连接mail.your-domain.com到SMTP服务器使用的用户名和密码以纯文本格式。它标识为localhost客户端的主机名。 使用Ruby发送HTML电子邮件:
当想要发送文本消息,Ruby所有内容将被视为简单的文本。即使会在短信中包含HTML标记,它会显示简单的文本和HTML标记将不会格式化HTML语法。但是Ruby的 Net::SMTP 提供了实际的HTML邮件发送HTML消息的选项.
在发送电子邮件消息时,可以指定一个MIME版本,内容类型和字符集发送HTML电子邮件。 例如:
下面的例子作为电子邮件发送HTML内容。试一次看看吧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
require
'net/smtp'
message = <<
MESSAGE_END
From: Private Person <me
@fromdomain
.com>
To:
A
Test User <test
@todomain
.com>
MIME
-Version:
1
.
0
Content-type: text/html
Subject:
SMTP
e-mail test
This is an e-mail message to be sent
in
HTML
format
<b>This is
HTML
message.</b>
<h1>This is headline.</h1>
MESSAGE_END
Net::
SMTP
.start(
'localhost'
)
do
|smtp|
smtp.send_message message,
'me@fromdomain.com'
,
'test@todomain.com'
end
|
作为电子邮件的附件发送:
混合内容发送一封电子邮件,要求设置Content-type头为 multipart/mixed。然后,文本和附件部分可以指定 boundaries 范围内.
两个连字符后跟一个唯一的编号,不能出现在电子邮件的消息部分的边界开始。最后一个边界表示电子邮件的最后一节的结尾也必须有两个连字符.
附加文件使用 pack("m") 函数来base64编码传输之前进行编码。 例子
下面的例子将文件 /tmp/test.txt 作为附件发送。试一次看看吧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
require
'net/smtp'
filename =
"/tmp/test.txt"
# Read a file and encode it into base64 format
filecontent =
File
.read(filename)
encodedcontent = [filecontent].pack(
"m"
)
# base64
marker =
"AUNIQUEMARKER"
body =<<
EOF
This is a test email to send an attachement.
EOF
# Define the main headers.
part1 =<<
EOF
From: Private Person <me
@fromdomain
.net>
To:
A
Test User <test
@todmain
.com>
Subject: Sending Attachement
MIME
-Version:
1
.
0
Content-Type: multipart/mixed; boundary=
#{marker}
--
#{marker}
EOF
# Define the message action
part2 =<<
EOF
Content-Type: text/plain
Content-Transfer-Encoding:8bit
#{body}
--
#{marker}
EOF
# Define the attachment section
part3 =<<
EOF
Content-Type: multipart/mixed; name=\"
#{filename}\"
Content-Transfer-Encoding
:base64
Content-Disposition: attachment; filename=
"#{filename}"
#{encodedcontent}
--
#{marker}--
EOF
mailtext = part1 + part2 + part3
# Let's put our code in safe area
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
|
注意:可以指定多个目的地内部数组,但他们需要用逗号分隔.
最后此篇关于在Ruby中利用Net::SMTP类发送电子邮件的教程的文章就讲到这里了,如果你想了解更多关于在Ruby中利用Net::SMTP类发送电子邮件的教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在电子邮件中 Received: header 可以合法地多次出现,并且具有互斥的值... Received: three.example.com Received: two.example.co
是否有任何代码/宏可以合并到我的 sas 程序中,一旦我的 sas 代码在运行时发生错误,它会立即给我发送电子邮件? 另外,这封电子邮件是否可能包含发生的错误? 最佳答案 是的……也不是…… 这是可能
我有一个包含三个 td 的表格,每个表格都需要包含图像。 td 的宽度和高度是固定的,但图像大小可以变化。目标是在不扭曲单元格或图像本身的情况下拟合图像。不能使用 background-image 属
首先非常感谢大家过去提出的宝贵建议,我们正在创建一个应用程序,在某些事件中想要将电子邮件/短信发送到我们已经尝试过 openURL 调用的指定电话号码,但它会打开现有的内置iPhone 的电子邮件/短
我正在使用 apache commons mail 发送电子邮件。不幸的是,我遇到了以下异常: org.apache.commons.mail.EmailException: Sending the
我可以在我的 ~/.hgrc 文件中设置我常用的电子邮件地址,但是有没有办法为一个 hg 项目指定我想被称为不同的名称/电子邮件(类似到项目目录中的 git 的 .git/config 文件覆盖 ~/
$message = 'New user registration\n\n There is a new submission on the site and below are the detail
使用 outlook 我可以发送在邮件正文中插入图像的电子邮件(不是作为附件)。我如何使用 PHP 中的 mail() 函数来做到这一点? 最佳答案 我会推荐 Swift Mailer: http:/
以下代码的目标是将所选图表粘贴到我的文本下方的电子邮件正文中。但是,它继续将其粘贴在我的文本上方。我该如何更改它以使其粘贴在下面?谢谢! Set OutApp = CreateObject("Outl
首先,我知道不建议使用正则表达式发送电子邮件,但我必须对此进行测试。 我有这个正则表达式: \b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b 在 Java 中,我这样
如何在没有任何第三方程序的情况下从 Python 发送电子邮件? 最佳答案 使用Python email和 smtplib模块。示例:http://docs.python.org/library/em
我目前正在使用此代码在 html 表中显示 mysql 记录 "; . . echo ' '. $row["Email1"] . ' '; . . echo ""; }
在电子邮件中使用 HTML 时,是否可以仅将链接的一部分着色为特定颜色? 我试过: red part of link normal part ...我知道如果我拆分链接是可能的,但我正在努力将它们保持
我正在处理一封 html 电子邮件,我有一个非常简单的元素 (ul),我想将它移到页面下方。 我检查了campaign monitor's guide并且不支持负边距,或者 position: abs
我使用表格创建了我的 HTML 电子邮件,该表格有一个背景图像,在大多数基于 Web 的电子邮件客户端中都能正常显示。 我正在努力让背景图片显示在 Outlook 中。 我最近的尝试,我尝试了以下操作
我对 PHP/CSS 和一般编程还很陌生。 我想改变文本区域中文本的格式,就像在这里所做的那样,例如,当为突出显示的文本添加标签“代码示例”时,它会缩进它,或者当将它设置为粗体时,它会加粗它。 这样做
嘿,你能推荐我哪些 C++ 库或类可用于在 C++ 中通过 SMTP 发送电子邮件。我在 Windows 平台上。我需要一个支持附件和 SSL 连接的库。有哪些可用选项。我不打算实现我自己的 :) 问
想知道是否可以在 HTML 电子邮件中包含一个表单。我要做的就是将图像输入提交到 Paypal 购买页面。我希望它直接进入 Paypal ,而无需先进入营销页面... 我会拥有 paypal 要求的完
我负责“ reshape ”我们的 IT 部门通信。我想用纯 HTML/CSS 来发送我们的电子邮件通知,以确保它的可移植性。 下面是代码,它在 Outlook 中看起来完全符合我的要求,但是一旦将内
我正在学习编写响应式电子邮件模板。目前我有:https://jsfiddle.net/q12yg2z6/
我是一名优秀的程序员,十分优秀!