簡體   English   中英

SMTP的窗口API

[英]window api for smtps

是否有任何Windows API可以使用smtp 和附件發送郵件。 我聽說這是不可能的,我必須使用其他套接字方法,如果確實如此,我該怎么做?

請僅建議使用C ++或C解決方案,不建議使用C#或Java(例如system.net.mail等)

這是(至少以我的經驗)最好沒有圖書館的地方之一。 Microsoft提供(至少)MAPI,Simple MAPI和CDO作為發送電子郵件的方式。 不幸的是,至少以我的經驗,所有這些方法( 尤其是 MAPI)都比自己完成工作復雜得多。

至少在處理不安全的電子郵件連接時,沒有庫就很簡單:在端口25上連接到服務器。向它發送一些字符串和電子郵件。 當您開始使用它時,“簡單”就是“簡單郵件傳輸協議”是完全必要的-確實非常簡單。

如果要建立安全連接,則幾乎可以肯定要為此使用一個庫-創建安全連接絕對不是一件容易的事。 由於您使用的是Windows,因此顯而易見的選擇是InternetOpenInternetConnect 與文檔相反, InternetConnect將使您可以在幾乎任何端口上創建連接。 它僅列出了大約五種可能性,但是,如果您僅傳遞一個實際的端口號(例如465或587),則應該可以使用-盡管有一些端口是WinInet阻止的(可能是無效的)安全措施。

處理附件是(大多數)單獨的問題。 附件只是以電子郵件正文中的文本結尾,帶有足夠的標頭來告訴接收電子郵件的程序將其解釋為附件而不是文本。 存在三種相當流行的可能性:BinHex,UUencode和MIME。 如果您只是想做簡單的附件,UUencode可能是您要走的路。 MIME更強大,但復雜得多。 使用它的主要原因是您是否想做一些簡單的附件以外的事情(例如,帶有嵌入式文件而不是附件的電子郵件)。 BinHex的實現稍微簡單一些,但浪費更多的空間-使用它的主要原因是一些古老的電子郵件客戶端無法處理其他任何事情。

這是wxWidget smtp類的鏈接。 如果您看一看,應該對如何發送電子郵件有所了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM