簡單郵件傳輸協定[編輯]
維基百科,自由的百科全書
網際網路協定套組 |
---|
應用層 |
傳輸層 |
網路層 |
連結層 |
SMTP是一個相對簡單的基於文字的協定。在其之上指定了一條訊息的一個或多個接收者(在大多數情況下被確認是存在的),然後訊息文字會被傳輸。可以很簡單地通過telnet程式來測試一個SMTP伺服器。SMTP使用TCP埠25。要為一個給定的域名決定一個SMTP伺服器,需要使用MX (Mail eXchange) DNS。
在八十年代早期SMTP開始被廣泛地使用。當時,它只是作為UUCP的補充,UUCP更適合於處理在間歇連線的機器間傳送郵件。相反,SMTP在傳送和接收的機器在持續連線的網路情況下工作得最好。
Sendmail是最早使用SMTP的郵件傳輸代理之一。到2001年至少有50個程式將SMTP實現為一個用戶端(訊息的傳送者)或一個伺服器(訊息的接收者)。一些其他的流行的SMTP伺服器程式包括了Philip Hazel的exim,IBM的Postfix, D. J. Bernstein的Qmail,以及Microsoft Exchange Server。
C# SmtpClient 透過smtp 寄信的功能 詳細功能如下紀錄一下 這邊已Gmail為例
紀錄一下
using System.Net; using System.Net.Mail; public void SendEmail() { //設定smtp主機 string smtpAddress = "smtp.gmail.com"; //設定Port int portNumber = 587; bool enableSSL = true; //填入寄送方email和密碼 string emailFrom = "123123@gmail.com"; string password = "123123"; //收信方email 可以用逗號區分多個收件人 string emailTo = "123@gmail.com,abc@gmail.com"; //主旨 string subject = "Hello"; //內容 string body = "Hello, I'm just writing this to say Hi!"; using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress(emailFrom); mail.To.Add(emailTo); mail.Subject = subject; mail.Body = body; // 若你的內容是HTML格式,則為True mail.IsBodyHtml = false; //如果需要夾帶檔案 //mail.Attachments.Add(new Attachment("C:\\SomeFile.txt")); //mail.Attachments.Add(new Attachment("C:\\SomeZip.zip")); using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber)) { smtp.Credentials = new NetworkCredential(emailFrom, password); smtp.EnableSsl = enableSSL; smtp.Send(mail); } } }
如果出現錯誤
SMTP 伺服器需要安全連接,或用戶端未經驗證。 伺服器回應為: 5.5.1 Authentication Required. Learn more at
代表 Gmail的兩段驗證讓他導致錯誤
這時候我們可以去
https://myaccount.google.com/security
最下面的地方 把允許安全性較低應用程式 狀態啟動 就OK了
沒有留言:
張貼留言