smtp發(fā)送郵件

  

一米軟件發(fā)現(xiàn)有很多人想嘗試用smtp發(fā)送郵件,但在網(wǎng)上一搜很多都是教你如何用python來(lái)做到smtp發(fā)送郵件,這就讓不會(huì)代碼的我們望而卻步,其實(shí)不會(huì)代碼也可以用阿里云的smtp發(fā)信功能來(lái)進(jìn)行smtp發(fā)送郵件,下面就一起來(lái)看看吧。


smtp發(fā)送郵件


首先開啟 SMTP 發(fā)信功能


您需要先開啟 SMTP 發(fā)信功能才能通過(guò) SMTP 接口發(fā)送郵件。


登錄郵件推送控制臺(tái)。


單擊左側(cè)導(dǎo)航欄中 發(fā)信地址,進(jìn)入發(fā)信地址頁(yè)面。


在發(fā)信地址列表中,找到您要開啟 SMTP 發(fā)信功能的發(fā)信地址,在對(duì)應(yīng)的操作欄中單擊 設(shè)置 SMTP 密碼。


在彈出對(duì)話框中填寫 SMTP 密碼,然后單擊 確定。


SMTP 發(fā)信方法


SMTP 協(xié)議是一個(gè)簡(jiǎn)單的郵件傳輸協(xié)議,利用它您可以將郵件發(fā)送給別人。此協(xié)議使用命令和應(yīng)答在客戶端與服務(wù)器之間傳輸報(bào)文。即客戶端發(fā)出一個(gè)命令,服務(wù)器返回一個(gè)應(yīng)答。發(fā)送方與接收方進(jìn)行一問(wèn)一答的交互,由發(fā)送方控制這個(gè)對(duì)話。


目前最新的 SMTP RFC 協(xié)議是 RFC5321 。


使用 SMTP 協(xié)議的郵件服務(wù)器分為兩種:


一種為郵件發(fā)送服務(wù)器,通常叫做 smtpd,需要發(fā)件人進(jìn)行認(rèn)證。


一種為郵件接收服務(wù)器,通常叫做 mx,接收外部運(yùn)營(yíng)商用戶投遞給本地用戶的郵件。


阿里云郵件推送的郵件服務(wù)器為 smtpd,所以需要進(jìn)行用戶認(rèn)證(要求認(rèn)證用戶名和發(fā)件人必須一致),認(rèn)證用戶名(就是發(fā)件人)和密碼可以通過(guò)控制臺(tái)進(jìn)行設(shè)置。


程序中調(diào)用 SMTP 發(fā)送郵件可以使用各種語(yǔ)言的 SMTP Library。詳細(xì)參考,請(qǐng)見 SMTP 調(diào)用示例。


通過(guò) SMTP 協(xié)議發(fā)送郵件的整體過(guò)程如下:


客戶端使用 telnet 命令連接到SMTP服務(wù)器,建立會(huì)話。

客戶端發(fā)送一個(gè) HELO 或 EHLO 命令。

客戶端發(fā)送一個(gè) AUTH 認(rèn)證命令進(jìn)行用戶登錄(使用 smtpd 方式)。

客戶端發(fā)送一個(gè) MAIL 命令指定發(fā)件人。

客戶端發(fā)送一個(gè) RCPT 命令指定收件人。

客戶端發(fā)送一個(gè) DATA 命令準(zhǔn)備輸入郵件正文。

客戶端發(fā)送一個(gè) . 命令(點(diǎn)命令)表示 DATA 命令結(jié)束。

客戶端發(fā)送一個(gè) QUIT 命令結(jié)束會(huì)話。


示例


為幫助您熟悉使用 SMTP 協(xié)議發(fā)送郵件的流程,提供以下 telnet 命令會(huì)話過(guò)程示例,來(lái)描述 SMTP 命令會(huì)話過(guò)程。


備注:其中 S 代表服務(wù)器,C 代表客戶端??梢允褂?Linux 命令 echo -n Content|base64 進(jìn)行 base64 編碼。


 
  1. S:220 smtp.aliyun-inc.com MX AliMail Server(127.0.0.1)
  2. C:EHLO test.com
  3. S:250-smtp.aliyun-inc.com
  4. S:250-8BITMIME
  5. S:250-AUTH=PLAIN LOGIN XALIOAUTH
  6. S:250-AUTH PLAIN LOGIN XALIOAUTH
  7. S:250-PIPELINING
  8. S:250 DSN
  9. C:AUTH LOGIN
  10. S:334 dXNlcm5hbWU6
  11. C:dGVzdEB0ZXN0LmNvbQ== 備注:用戶名test@test.com的base64編碼
  12. S:334 UGFzc3dvcmQ6
  13. C:dGVzdA== 備注:用戶密碼test的base64編碼
  14. S:235 Authentication successful
  15. C:MAIL FROM: 備注:注意用 <> 將發(fā)件人擴(kuò)起來(lái)
  16. S:250 Mail Ok
  17. C:RCPT TO:
  18. S:250 Rcpt Ok
  19. C:DATA
  20. S:354 End data with .
  21. C:subject: test
  22. C:from:
  23. C:to:
  24. C:
  25. C:test
  26. C:.
  27. S:Data Ok: queued as freedom ###envid=148316944
  28. C:QUIT
  29. S:221 Bye

其中,DATA 命令后輸入的郵件正文示例中,采用了最簡(jiǎn)單的文本字符串?dāng)?shù)據(jù)。對(duì)于標(biāo)準(zhǔn)的富文本郵件,應(yīng)該進(jìn)行規(guī)范的 MIME 格式化,包括主題、正文的編碼等,這樣可以降低被接收方服務(wù)器判為垃圾郵件的風(fēng)險(xiǎn)。

相關(guān)資訊

推薦軟件