POCOで簡単SMTPアクセス
はい,POCOキャンペーン第3弾です.
第1弾:
POCOで簡単Webアクセス - なぜか数学者にはワイン好きが多い
第2弾:
POCOで簡単POPアクセス - なぜか数学者にはワイン好きが多い
POCOを使えば,C++でもRuby並に簡単にアプリケーションが作れる例です.
今回は電子メールを送信する例です.POCOのソースリスト一式に入っているサンプルプログラムから,画像ファイル添付を除いた簡単なものに改変しました.
#include <iostream> #include "Poco/Net/MailMessage.h" #include "Poco/Net/MailRecipient.h" #include "Poco/Net/SMTPClientSession.h" #include "Poco/Net/StringPartSource.h" using namespace std; using Poco::Net::MailMessage; using Poco::Net::MailRecipient; using Poco::Net::SMTPClientSession; using Poco::Net::StringPartSource; int main() { string smtphost = "smtpserver.example.com" ; // SMTPサーバの名前を指定して下さい string from = "admin@example.com"; // 送信者のメールアドレスを. string to = "admin@examples.jp"; // 送信先のユーザのメールアドレスを. MailMessage message; message.setSender(from); message.addRecipient(MailRecipient(MailRecipient::PRIMARY_RECIPIENT, to)); message.setSubject("Hello from the POCO C++ Libraries"); string content; // メールの内容作成用のストリングオブジェクト content += "Hello "; content += to; content += ",\r\n\r\n"; content += "This is a greeting from the POCO C++ Libraries.\r\n\r\n"; message.addContent(new StringPartSource(content)); // MIME形式でテキスト文書を追加 SMTPClientSession session(smtphost); session.login(); session.sendMessage(message); session.close(); return(0); }
マルチパートになるのが気持ち悪ければ,よりシンプルなバージョンを公開しようと思います.
このサンプルも,いつも私に協力してくれる同僚に捧げます.