我需要添加在我的應用程序發送電子郵件(與用戶的電子郵件服務器/服務)的能力,因爲我需要wirth或使用smtp C++庫或代碼 其中我不知道在哪裏可以找到。我在哪裏可以找到免費的lib或源代碼,我可以使用或學習。
可以請你幫我在這個問題上 感謝有什麼選擇我必須寫在c + +(跨平臺)的smtp客戶
-1
A
回答
0
如果你不介意GPL許可,您可以嘗試VMime
,如果你想在庫窗口,你可以嘗試CPJNSMTPConnection
0
下Unix,從程序發送郵件的正常方式是將其包含(用popen)管道傳送到/ usr/lib/sendmail。其他MTA(後綴等)提供與該接口的兼容性程序。
的好處是,你不必配置每個程序,以便他們使用的是正確的網關,能夠使用別名,發送郵件...
1
使用boost :: ASIO,並按照協議規範寫一個簡單的客戶端。
5
我會建議使用poco C++庫。這些都在Boost Software License(最具限制性的開源許可之一)下重新發布,並且它們以Mail-lib作爲它的一部分。這就是他們的文檔狀態:
類爲通過SMTP發送電子郵件(簡單郵件傳輸協議,RFC 2821)服務器與電子郵件附件的支持,以及類下載電子郵件來自POP3(郵局協議版本3,RFC 1939)服務器。
問候,
Ovanes
P.S. Poco C++ Libs是一個多平臺框架。
0
根據您的要求ACE可能是一個選項。 這是一個免費的開源框架,可用於很多操作系統。
我不知道他們是否具有smtp的具體實現,但至少他們提供連接部分的C++抽象。所以只有協議的實現取決於你。
0
這裏是我的C++ SMTP客戶端的例子:https://github.com/breakermind/SslSMTPClient帶附件,並允許得到收件人的電子郵件域名的MX主機automaticaly,你不需要自己的SMTP服務器:
// main - create SSL context and connect
int main(int count, char *strings[])
{
cout << "C++ ssl smtp send email with STARTTLS\r\n";
// Add attachments to message if you want
vector<string> files;
// files.push_back("file9.jpg");
// files.push_back("filek.pdf");
// Initialize
sslsmtpEx sm;
sm.sslsmtpExSet("localhost", 25);
// EHLO hostname
sm.heloHostname("domain.pl");
// Display logs
// sm.showLogs();
// get MX records from dns for recipient
vector<string> mx = sm.getMX("[email protected]",0,0);
// Send email to each mx host from recipient domain DNS (You need send only to one server !!!)
for (int i = 0; i < mx.size(); i++){
// Set hostname from mx dns
sm.sslsmtpExSet(mx.at(i), 25);
cout << "Mx host: " << mx.at(i) << endl;
// send email
int ok = sm.Send("[email protected]", "[email protected]", "[email protected]", "Smtp client test", "<h1>Smtp test</h1>", "<h1>Smtp test</h1>", files);
cout << "Email has been sent : " << ok << endl;
if(ok){
// if email has been sent, end loop with next mxhost
break;
}
}
sleep(10);
return 0;
}
問候
相關問題
- 1. 客戶跨平臺日期選擇器與HTML5
- 2. 我們必須在函數「return」的末尾寫什麼?在C++
- 3. 我對Python開源跨平臺Postgres兼容驅動程序有什麼選擇?
- 4. 爲什麼我的D3選擇必須在D3代碼之前?
- 5. 什麼我必須有運行sqlserver?
- 6. 爲什麼我必須在手機上選擇設備時,它應該是許多平臺的代碼基礎?
- 7. MongoDB GUI客戶端(跨平臺或Linux)
- 8. 跨平臺C?
- 9. 您必須至少選擇一個上市平臺,以顯示
- 10. 選擇跨平臺的GUI技術
- 11. Selenium Webdriver C#爲什麼我必須單擊兩次以選擇單選按鈕
- 12. 必須選擇Symfony2控制檯mac
- 13. 平臺無關和跨平臺有什麼區別?
- 14. 爲跨平臺移動客戶端編寫MMO服務器
- 15. 爲什麼我必須編譯JavaFX SceneBuilder?
- 16. C#自動屬性 - 爲什麼我必須寫「get; set;」?
- 17. 爲什麼重寫==必須重寫equals?
- 18. 什麼平臺可以選擇eshop?
- 19. 我必須爲管理控制器選擇什麼模式mvc
- 20. 跨平臺HTML選擇控件
- 21. C#Activex跨平臺
- 22. 什麼是在Java中選擇隨機種子的跨平臺方式?
- 23. 爲什麼選擇objective-C作爲Cocoa的平臺爲什麼不選擇C,C++?
- 24. 建立一個跨平臺的C++在Eclipse具有跨平臺庫
- 25. 爲什麼我必須在客戶端庫中公開宏實現的'use'?
- 26. 跨平臺
- 27. HTML5客戶端數據加密 - 我有什麼選擇?
- 28. 爲什麼必須N-1在C
- 29. C++中的跨平臺OOP
- 30. Wordpress很容易,客戶必須學習它,那麼我提供什麼?
到很多時間那.. 我繼電器需要跨平臺庫,順便說一句,因爲它只是協議,所以代碼可以爲每個操作系統..沒有? – user63898 2009-08-02 11:14:15