Declaration
typedef basic_pop3<ssl::socket> pop3s;
Overview
pop3s は,POP3S (SMTP over SSL) 通信を行うためのクラスです.tcp::socket の代わりに ssl::socket を用いることで実現しています. インターフェースは pop3 クラスと同様です.ただし, サーバ側の証明書の認証を行う場合は,サーバと接続する(start() メソッドを実行する) 前に verify_locations() メソッドで rootCA 認証書のファイル/ディレクトリ名を指定しておく必要があります (詳細は,ssl::socket を参照して下さい).
CLX における SSL 通信は OpenSSL を用いて実装しています. そのため,SSL 通信関連ライブラリを使用する際には環境に OpenSSL ライブラリがインストールされている必要があります.OpenSSL に関する詳細は, OpenSSL: The Open Source toolkit for SSL/TLS ( OpenSSL 日本語サイト ) を参照して下さい.
Example
#include <iostream>
#include <string>
#include "clx/pop3s.h"
int main(int argc, char* argv[]) {
if (argc < 4) std::exit(-1);
try {
clx::pop3s session(argv[1], 995);
// APOP が使用できるなら APOP 認証を用いる.
session.login(argv[2], argv[3], session.apop_support());
std::cout << "status: " << session.status() << std::endl;
// LIST コマンド
clx::pop3s::list_type list = session.list();
std::cout << "mail list" << std::endl;
std::cout << "-----" << std::endl;
for (size_t i = 0; i < list.size(); ++i) {
std::cout << list[i] << std::endl;
}
std::cout << "-----" << std::endl;
// TOP コマンド
std::cout << "top [1]" << std::endl;
std::cout << "-----" << std::endl;
std::cout << session.top(1, 0) << std::endl;
std::cout << "-----" << std::endl;
session.finish();
}
catch (clx::pop3_error& e) {
std::cerr << e.what() << std::endl;
std::exit(-1);
}
catch (clx::socket_error& e) {
std::cerr << e.what() << std::endl;
std::exit(-1);
}
catch (std::runtime_error& e) {
std::cerr << e.what() << std::endl;
std::exit(-1);
}
return 0;
}