发送邮件的三种方式:
1、VBS
执行vbs脚本文件的程序为: system32文件下的
NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
Set Email = createObject("CDO.Message")
Email.From = "xxx" '發送者
Email.To = "xxx;xxx" '收件地址
Email.Subject = "Test send mail" '郵件主旨
Email.Textbody = "test!" '郵件內容
Email.AddAttachment "" '附件
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") =
.Item(NameSpace&"smtpserver") = "xxxxxxxx"
.Item(NameSpace&"smtpserverport") =
.update
End With
Email.Send
2、Telnet
使用Telnet发送邮件
SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
在传输文件过程中使用端口:25
一:使用远程连接命令连接到mail服务器:wendy-ex-01
ehlo
HELO是客户向对方邮件服务器发出的标识自己的身份的命令
SMTP邮件发送程序与SMTP邮件接收程序建立连接的第一条必须的命令,主机名是当前邮件发送者的主机名;
auth
现在一般的邮箱都需要进行用户名、密码验证,而且SMTP邮件服务器一般都使用Login验证方式,因此就不用考虑其他两种验证方式了
mailfrom:发送人邮箱地址:可以随意写
MAILFROM命令用来表示发送者的邮件地址
rcptto:收件人邮箱地址:必须为存在的邮箱
RCPTTO:标识接收者的邮件地址
DATA表示下面是邮件的数据部分,输入完毕以后,以一个"."开始的行作为数据部分的结束标识;QUIT表示退出这次会话,结束邮件发送
data
data命令用于表示该命令之后的所有内容、数据都将被作为邮件的相关内容,直到遇到<CRLF>.<CRLF>标识符,即一个句号“.”结束邮件的发送内容;
Quit
发送邮件成功:
SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为:
(1)建立TCP连接。
(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。
(3)服务器端以OK作为响应,表示准备接收。
(4)客户端发送RCPT命令。
(5)服务器端表示是否愿意为收件人接收邮件。
(6)协商结束,发送邮件,用命令DATA发送输入内容。
(7)结束此次发送,用QUIT命令退出。
SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。
3、Powershell
$from="xxxx"
$to="xxxx"
$subject="test mail"
$smtpserver="xxxxxxxx"
$message="xxxx"
Send-mailmessage –bodyashtml –from $from –to $to –subject $subject –body $message –smtpserver $smtpserver -attachments "d:\ps\groupinfol.csv" -Encoding ([System.Text.Encoding]::Utf8)
$ips="xxx","xxx"
foreach ($ip in $ips)
{
echo $ip
$from = "xxx"
$to="xxx"
$smtpserver="$ip"
$subject = xxx-$ip"
$message="xxx-$ip"
Send-mailmessage –bodyashtml –from $from –to $to –subject $subject –body $message –smtpserver $smtpserver -Encoding ([System.Text.Encoding]::Utf8)
}