smtp發送郵件

  

一米軟件發現有很多人想嘗試用smtp發送郵件,但在網上一搜很多都是教你如何用python來做到smtp發送郵件,這就讓不會代碼的我們望而卻步,其實不會代碼也可以用阿里云的smtp發信功能來進行smtp發送郵件,下面就一起來看看吧。


smtp發送郵件


首先開啟 SMTP 發信功能


您需要先開啟 SMTP 發信功能才能通過 SMTP 接口發送郵件。


登錄郵件推送控制臺。


單擊左側導航欄中 發信地址,進入發信地址頁面。


在發信地址列表中,找到您要開啟 SMTP 發信功能的發信地址,在對應的操作欄中單擊 設置 SMTP 密碼。


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


SMTP 發信方法


SMTP 協議是一個簡單的郵件傳輸協議,利用它您可以將郵件發送給別人。此協議使用命令和應答在客戶端與服務器之間傳輸報文。即客戶端發出一個命令,服務器返回一個應答。發送方與接收方進行一問一答的交互,由發送方控制這個對話。


目前最新的 SMTP RFC 協議是 RFC5321 。


使用 SMTP 協議的郵件服務器分為兩種:


一種為郵件發送服務器,通常叫做 smtpd,需要發件人進行認證。


一種為郵件接收服務器,通常叫做 mx,接收外部運營商用戶投遞給本地用戶的郵件。


阿里云郵件推送的郵件服務器為 smtpd,所以需要進行用戶認證(要求認證用戶名和發件人必須一致),認證用戶名(就是發件人)和密碼可以通過控制臺進行設置。


程序中調用 SMTP 發送郵件可以使用各種語言的 SMTP Library。詳細參考,請見 SMTP 調用示例。


通過 SMTP 協議發送郵件的整體過程如下:


客戶端使用 telnet 命令連接到SMTP服務器,建立會話。

客戶端發送一個 HELO 或 EHLO 命令。

客戶端發送一個 AUTH 認證命令進行用戶登錄(使用 smtpd 方式)。

客戶端發送一個 MAIL 命令指定發件人。

客戶端發送一個 RCPT 命令指定收件人。

客戶端發送一個 DATA 命令準備輸入郵件正文。

客戶端發送一個 . 命令(點命令)表示 DATA 命令結束。

客戶端發送一個 QUIT 命令結束會話。


示例


為幫助您熟悉使用 SMTP 協議發送郵件的流程,提供以下 telnet 命令會話過程示例,來描述 SMTP 命令會話過程。


備注:其中 S 代表服務器,C 代表客戶端。可以使用 Linux 命令 echo -n Content|base64 進行 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: 備注:注意用 <> 將發件人擴起來
  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 命令后輸入的郵件正文示例中,采用了最簡單的文本字符串數據。對于標準的富文本郵件,應該進行規范的 MIME 格式化,包括主題、正文的編碼等,這樣可以降低被接收方服務器判為垃圾郵件的風險。

相關資訊