CLX C++ Libraries - pop3s
Author: clown

CLX C++ Libraries
Home >> pop3 >> pop3s

# 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

example_pop3s.cpp

    #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;
    }

# Related Pages

1. CLX C++ Libraries - ssl::socket
2. CLX C++ Libraries - pop3

# References

1. OpenSSL: The Open Source toolkit for SSL/TLS
2. OpenSSL 日本語サイト: The Open Source toolkit for SSL/TLS