VMime Book 日本語訳 第6章 6-2

VMime Book 日本語訳 第6章 6-2
2020-07-01 K.OHWADA

原文
VMime Book: A Developer’s Guide To VMime
https://www.vmime.org/public/documentation/book/vmime-book.pdf

全体目次

第6章 メッセージングサービスの操作

ページ内 目次
6.2 セッションの操作
6.2.1 プロパティの設定
6.2.2 利用可能なプロパティ
6.2.3 サービスのインスタンス

第6章 メッセージングサービスの操作

Working with Messaging Services

6.2 セッションの操作

Working with sessions

6.2.1プロパティの設定

Setting properties

セッションは、サービスの構成パラメーターを保管するために使用されます。 これらには、サービスの動作を変更できる一連の型付きプロパティが含まれています。 メッセージングサービスを使用する前に、セッションオブジェクトを作成して初期化する必要があります。

vmime::shared ptr <vmime::net::session> theSession = vmime::net::session::create();

セッションのプロパティは次のとおりです。

  • 接続パラメーター:接続するホストとポート。

  • 認証パラメーター:サービスを使用するために必要なユーザー資格情報(存在する場合)。

  • プロトコル固有のパラメーター:拡張機能を有効または無効にします(例:POP3でのAPOPサポート)。

プロパティはドット付き表記を使用して保存され、サービスタイプ、プロトコル名、カテゴリ、およびプロパティの名前を指定します。

{service_type}.{protocol}.category.name

プロパティの例は、store.pop3.options.apopAPOP認証の使用を有効または無効にするために使用されます)です。 store.pop3の部分はプレフィックスと呼ばれます。 これにより、使用するプロトコルに応じて、同じプロパティに異なる値を指定できます。 セッションプロパティは、vmime :: propertySetオブジェクトに保存されます。 プロパティの値を設定するには、次のいずれかを使用できます。

theSession−>getProperties().setProperty(”property−name”, value); 

あるいは

theSession−>getProperties()[”property−name”] = value;

6.2.2 利用可能なプロパティ

Available properties

以下は、執筆時点で利用可能なプロパティとそれらが適用されるプロトコルのリストです。 このドキュメント。わかりやすくするために、プレフィックスはこの表には表示されていません。

表6.1:すべてのプロトコルに共通のプロパティ Properties common to all protocols

表6.2:プロトコル固有のオプション Table 6.2: Protocol-specific options

6.2.3 サービスのインスタンス

Instanciating services

プロトコル名を指定するか、サービスのURLを指定することにより、サービスを作成できます。 名前による作成は非推奨であるため、この章では後者のオプションのみを示します。 サービスに接続するためのURLスキームは次のとおりです。

protocol://[username[:password]@]host[:port]/[root-path]

注:
ローカルサービス(つまり、sendmailとmaildir)の場合、ホスト部分は使用されませんが、空であってはなりません(「localhost」を使用できます)。

次の表に、各サービスのURLの例を示します。

サービス 接続URL
imap, imaps imap://imap.example.com, imaps://vincent:pass@example.com
pop3, pop3s pop3://pop3.example.com
smtp, smtps smtp://smtp.example.com
maildir maildir://localhost/home/vincent/Mail (host not used)
sendmail sendmail://localhost (host not used, always localhost)

接続URLがあれば、サービスのインスタンス化は非常に簡単です。サービスの種類に応じて、getStore()またはgetTransport()のいずれかを使用します。 たとえば、ストアサービスの場合は、次を使用します。

vmime::utility:url url(”imap://user:pass@imap.example.com”); vmime::shared ptr <vmime::net::store> st = sess−>getStore(url);

およびトランスポートサービスの場合:

vmime::utility:url url(”smtp://smtp.example.com”);
vmime::shared ptr <vmime::net::transport> tr = sess−>getTransport(url);