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);
}マルチパートになるのが気持ち悪ければ,よりシンプルなバージョンを公開しようと思います.
このサンプルも,いつも私に協力してくれる同僚に捧げます.