發送郵件的三種方式:
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") = 2 .Item(NameSpace&"smtpserver") = "xxxxxxxx" .Item(NameSpace&"smtpserverport") = 25 .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) }