VMime Book 日本語訳 第6章 6-4
2020-07-01 K.OHWADA
原文
VMime Book: A Developer’s Guide To VMime
https://www.vmime.org/public/documentation/book/vmime-book.pdf
第6章 メッセージングサービスの操作
Working with Messaging Services
6.4 トランスポートサービスの利用
Using transport service
メッセージを送信するときにサービスにメッセージデータを提供するには、次の2つの可能性があります。
メッセージへの参照があり(タイプvmime :: message): send(msg)を呼び出すだけです。
または、生のメッセージデータ(文字列など)のみがあり: 追加のパラメーター(メッセージエンベロープに対応)を受け取るsend()の2番目のオーバーロードを呼び出す必要があります
次の例は、トランスポートサービスを使用して、2番目の方法を使用してメッセージを送信する方法を示しています。
リスト6.4:トランスポートサービスの使用
Using a transport service
const vmime: : string msgData = ”From: me@example.org \r\n” ”To: you@example.org \r\n” ”Date: Sun, Oct 30 2005 17:06:42 +0200 \r\n” ”Subject: Test \r\n” ”\r\n” ”Message body”; // Create a new session vmime:: utility :: url url(”smtp://example.com”); vmime::shared ptr <vmime::net::session> sess = vmime::net::session::create(); // Create an instance of the transport service vmime::shared ptr <vmime::net::transport> tr = sess−>getTransport(url); // Connect it tr->connect(); // Send the message vmime:: utility ::inputStreamStringAdapter is(msgData); vmime::mailbox from("me@example.org"); vmime::mailboxList to; to.appendMailbox(vmime::make shared <vmime::mailbox>("you@example.org")); tr->send ( /∗ expeditor ∗/ from, /∗ recipient(s) ∗/ to, /∗ data ∗/ is, /∗ total length ∗/ msgData.length()); // We have finished using the service tr->disconnect();
注:
サービスを使用すると、いつでも例外がスローされる可能性があります。
わかりやすくするために、ここでは例外をキャッチしませんが、ユーザーにエラーフィードバックを提供するために、必ず独自のアプリケーションで例外をキャッチしてください。
SMTPを使用する場合は、セッションオブジェクトにいくつかのプロパティを設定することで認証を有効にできます(service :: setProperty()は、セッションにプロパティを設定するためのショートカットです。
正しいプレフィックス:
tr−>setProperty(”options.need−authentication”, true); tr−>setProperty(”auth.username”, ”user”); tr−>setProperty(”auth.password”, ”password”);