.Net Core(截至目前)缺少System.Net.Mail
名稱空間,並且此名稱空間的預覽版本可通過塊金缺少SmtpClient
,這是它的最重要類型。但是,如果出於某些原因不喜歡使用類庫(比如成爲一個獨立的英雄),是否有任何方式使用.Net核心(HttpWebRequest,HttpClient,套接字等)中的可用工具發送電子郵件。 ?如果是這樣怎麼做(例子,而不是理論)。在不使用類庫的情況下在.Net Core中發送電子郵件
回答
你完全可以編寫自己的圖書館來發送電子郵件。問題是「你應該嗎?」除非您完全打算讓圖書館可供廣大讀者使用,否則所需時間將不是一項有價值的工作。
原來的SMTP Specification (RFC 821)
(https://tools.ietf.org/html/rfc821)約爲68頁。實施這個規範是「可行的」,但需要付出巨大的努力。較新的SMTP Specification (RFC2821)
(https://tools.ietf.org/html/rfc2821)爲79頁。
除了實現RFC 2821中規定的功能之外,還需要熟悉其他許多RFC和文檔。 (一簡要介紹,通過從頁68至70所列的參考資料一定會給你一點停頓。)
任何人發送郵件與.NET Core
將是要麼使用一個服務,如SendGrid(http://sendgrid.com/),最好的選擇還是像MailKit這樣的免費和開放源代碼庫(https://github.com/jstedfast/MailKit)。我相信大多數.NET Core
已部署的站點正在使用這兩種方法之一發送電子郵件。
Steve Gordon在ASP.NET Core上使用MailKit庫做了一篇非常好的博文(https://www.stevejgordon.co.uk/how-to-send-emails-in-asp-net-core-1-0)。
即使你想建立自己的SMTP librar
Y(而我絕對不主張),最好的辦法可能是通過GitHub
叉像MailKit
(https://github.com/jstedfast/MailKit),然後修改它。這至少可以讓你玩和反覆修改一個工作實現。
您的大部分工作將使用System.Net.Sockets
名稱空間中的組件完成。這裏是.NET Framework 4.7
版本(https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets?view=netframework-4.7)的參考。它應該與.NET Core
的實現非常相似,儘管我沒有對它進行測試。
有時最好的建議是「只因爲你可以不意味着你應該。」請不要成爲「獨立英雄」。去用什麼工作。
- 1. 在用戶不知道的情況下發送電子郵件
- 2. VB.net在不知道SMTP的情況下發送電子郵件
- 3. PHP電子郵件在某些情況下,不發送
- 4. 如何在不使用MFMailComposerViewController的情況下使用UIbarbuttonitem發送電子郵件
- 5. 如何在不使用ViewController的情況下發送電子郵件?
- 6. 如何在不使用EmailComposeTask的情況下從Windows Phone發送電子郵件?
- 7. 如何在不使用MFMailComposeViewcontroller的情況下發送電子郵件
- 8. 在不使用SMTP服務器的情況下發送電子郵件
- 9. 在沒有用戶交互的情況下在Android中發送電子郵件
- 10. 在沒有電子郵件的情況下在ruby上使用電子郵件
- 11. 在.Net中發送電子郵件
- 12. Android應用程序可以在不打開電子郵件界面的情況下發送電子郵件嗎?
- 13. codeigniter在沒有配置電子郵件庫的情況下發送電子郵件
- 14. 如何在不使用smtp服務器的情況下自動從.net應用程序發送電子郵件?
- 15. 如何通過nodejs中的nodemailer npm在不使用電子郵件憑證的情況下發送郵件?
- 16. 在沒有在ios 7中顯示電子郵件作曲者視圖的情況下發送電子郵件
- 17. 在.NET中發送電子郵件,並將電子郵件保存在用戶的已發送郵件中
- 18. 在沒有MailChimp的情況下在Outlook 2010中發送HTML電子郵件
- 19. 如何在沒有編碼的情況下在電子郵件中發送url
- 20. 發送電子郵件使用net/SMTP
- 21. 使用.NET發送電子郵件
- 22. 如何在不確認電子郵件地址的情況下通過Amazon SNS發送電子郵件?
- 23. 如何在不顯示撰寫電子郵件界面的情況下發送電子郵件?
- 24. 如何在不延遲ASP.NET響應的情況下發送電子郵件?
- 25. 有沒有辦法在不打開MFMailComposeViewController的情況下發送電子郵件?
- 26. 在不泄露服務器IP地址的情況下發送電子郵件
- 27. 如何在不發送電子郵件的情況下檢查smtp服務器?
- 28. PHP在不停止執行的情況下發送多封電子郵件
- 29. 發送電子郵件在.Net 3.5
- 30. 如何在沒有端口轉發的情況下發送電子郵件?
不是沒有編寫自己的庫 - 如果你更關心的是自己編寫代碼而不是自己編寫代碼,爲什麼沒有通讀MailKit代碼(https:// github。 com/jstedfast/MailKit),然後決定是否要解決這個野獸。祝你好運:) – Steveland83
@Arrrr你的選擇是使用TCP庫來編寫自己的smtp類。除了其他圖書館的例子,我們可以提供幫助。電子郵件不HTTP,所以使用Http庫甚至沒有在正確的ballpark –
@JoePhillips:它可以簡單地使用套接字編程完成。檢查我的答案。 – Transcendent