![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |

RFC2822 ( Internet Message Format )で定義されるメールメッセージを処理するクラスです。メールメッセージを作成、変更、書き出し、解析します。マルチパート メッセージ、添付ファイルも扱えます。
送信メールメッセージの処理手順
例 770. メールメッセージ作成
class MyClass {
private:
SFXSMTPSender _sender;
XALLBACK_DECLARE_SFXSMTPSENDER(SMTPCallback)
public:
Void Start(Void);
};
Void MyClass::Start(Void)
{
SFCError error;
SFXMailMessage message;
// メールヘッダーに Subject フィールドを設定する
message.SetSubjectField("Mail Subject");
// メールヘッダーに From フィールドを設定する
message.SetFromField("fromaddress@example.com");
// メールヘッダーに To アドレスを追加する
message.AddToField("toaddress1@example.com");
message.AddToField("toaddress2@example.com");
// メールヘッダーに Cc アドレスを追加する
message.AddCcField("toaddress3@example.com");
// メールヘッダーに Bcc アドレスを追加する
message.AddBccField("toaddress4@example.com");
// メールヘッダーに メッセージ本文の種類を追加する
message.AddField("Content-Type", "text");
// メールメッセージの本文を設定する
message.SetBody("Mail test\r\nThis mail is sent by SFXSMTPSender.\r\n");
//添付するテキスト ファイル名を作成する
SFXBuffer buff("Hello", 5);
メールメッセージにファイルを添付する
message.AttachFile(buff, "filename.txt", "text", "plain");
// SMTP サーバーの IP アドレスとポート番号を指定する ( ドメインは自動解決される )
_sender.SetServer(SFXSocketAddress("smtpserver.example.com:25"));
// SMTPCallback コールバック関数を登録し、メールを送信する
// メール送信の完了は SMTPCallback 関数に通知される
if ((error = _sender.SendMessage(&message,
XALLBACK_FUNCTION(SMTPCallback))) != SFERR_NO_ERROR) {
// error が SFERR_NO_ERROR でない場合はコールバックが戻らないので、
// ここでエラー処理をする
}
}
// メール送信の完了が通知されるコールバック関数
XALLBACK_IMPLEMENT_SFXSMTPSENDER(MyClass, SMTPCallback, error)
{
if (error == SFERR_NO_ERROR) {
TRACE("メールを送信しました。");
}
else {
TRACE("メール送信に失敗しました。 %d", error);
}
}
受信メールメッセージの処理手順
![]() |
マルチパート メッセージの処理 |
|---|---|
SFXMailMessage::IsMultipart 関数を使ってマルチパート部の有無を判定して処理します。 | |
例 771. 受信メールメッセージの解析
// 受信したメールメッセージ SFXAnsiString receivedString = "From: Albert Einstein <einstein@example.com>\r\n" "To: Isaac Newton <newton@example.com>\r\n" "Subject: untitled\r\n" "Date: Sat, 08 Mar 2008 20:37:58 +0900\r\n" "\r\n" "This is a mail body.\r\n"; SFXMailMessage message; // メールメッセージを解析する message.Parse(receivedString); // メールヘッダーの From フィールドを取得する // fromString は Albert Einstein <einstein@example.com> になる SFXAnsiString fromString = message.GetFromField(); // メールヘッダーの To フィールドを取得する // toString は Isaac Newton <newton@example.com>\r\n になる SFXAnsiString toString = message.GetToField(); // メールヘッダーの Subject フィールドを取得する // subjectStringは untitled になる SFXAnsiString subjectString = message.GetSubjectField(); // メールヘッダーの Date フィールドを SFXDate クラスのインスタンスとして取得する SFXDate date = message.GetDateField(); // メール本文を取得する // bodyString は This is a mail body.\r\n になる SFXAnsiString bodyString = message.GetBody();
| コンストラクタ/デストラクタ |
|---|
|
SFXMailMessage( Void ) SFXMailMessage クラスのコンストラクタです。
|
|
~SFXMailMessage( Void ) SFXMailMessage クラスのデストラクタです。
|
| パブリック関数 | |
|---|---|
| SFCError |
AddBccField(
SFXAnsiStringConstRef bcc
) メールヘッダーの Bcc フィールドに bcc: メール アドレスを追加します。
|
| SFCError |
AddCcField(
SFXAnsiStringConstRef cc
) メールヘッダーの Cc フィールドに cc: メール アドレスを追加します。
|
| SFCError |
AddField(
SFXAnsiStringConstRef name
, SFXAnsiStringConstRef value
) メールヘッダーのフィールドに値を追加します。
|
| SFCError |
AddMultipartBody(
SFXMailMessagePtr body
) マルチパート メッセージにメッセージを追加します。
|
| SFCError |
AddToField(
SFXAnsiStringConstRef to
) メールヘッダーの To フィールドに to: メール アドレス を追加します。
|
| SFCError |
AttachFile(
SFXBufferConstRef file
, SFXAnsiStringConstRef fileName
, SFXAnsiStringConstRef mainType = "application"
, SFXAnsiStringConstRef subType = "octet-stream"
) メールメッセージにファイルを添付します。
|
| Void |
Clear( Void ) メールメッセージの内容を消去します。
|
| SFCError |
GetAttachedFile(
SInt32 index
, SFXBufferPtr data
, SFXAnsiStringPtr fileName
, SFXAnsiStringPtr mainType = null
, SFXAnsiStringPtr subType = null
) 添付ファイルを取得します。
|
| SFXAnsiString |
GetBccField(
Bool isDecoding = true
) メールヘッダーの Bcc フィールドの値を取得します。
|
| SFXAnsiString |
GetBody(
Bool isDecoding = true
) メールメッセージの本文を取得します。
|
| SFXAnsiStringConstRef |
GetBodyRef( Void ) メールメッセージの本文への参照を取得します。
|
| SFXAnsiString |
GetBodyText(
Bool isDecoding = true
) メールメッセージの本文を取得します。
|
| SFXAnsiString |
GetCcField(
Bool isDecoding = true
) メールヘッダーの Cc フィールドの値を取得します。
|
| SFXAnsiString |
GetContentType( Void ) メールメッセージの Content-Type の値を取得します。
|
| SFCError |
GetContentType(
SFXAnsiStringPtr mainType
, SFXAnsiStringPtr subType
, SFXPropertyConstHandle attribute
) メールメッセージの Content-Type の値を取得します。
|
| SFXDate |
GetDateField( Void ) メールヘッダーの Date フィールドの値を取得します。
|
| SFXAnsiString |
GetEpilogue(
Bool isDecoding = true
) マルチパート メッセージのエピローグ( 後置部分 )を取得します。
|
| SFXAnsiString |
GetField(
SFXAnsiStringConstRef name
, Bool isDecoding = true
, BoolPtr found = null
) 指定したメールヘッダーのフィールドの値を取得します。
|
| SFXPropertyConstRef |
GetFieldList( Void ) メールメッセージのヘッダー フィールドを全て取得します。
|
| SFXAnsiString |
GetFromField(
Bool isDecoding = true
) メールヘッダーの From フィールドの値を取得します。
|
| SFXMailMessagePtr |
GetMultipartMessage(
SInt32 index
) マルチパート メッセージの指定した内部メッセージを取得します。
|
| UInt32 |
GetMultipartSize( Void ) マルチパート メッセージの内部メッセージの個数を返します。
|
| SFXAnsiString |
GetPreamble(
Bool isDecoding = true
) マルチパート メッセージのプリアンブル( 前置部分 )を取得します。
|
| SFXAnsiString |
GetSubjectField(
Bool isDecoding = true
) メールヘッダーの Subject フィールドの値を取得します。
|
| SFXAnsiString |
GetToField(
Bool isDecoding = true
) メールヘッダーの To フィールドの値を取得します。
|
| Bool |
HasField(
SFXAnsiStringConstRef name
) 指定したフィールドがメールヘッダーにあるかどうかを判定します。
|
| Bool |
IsMultipart( Void ) マルチパート メッセージであるかどうかを判定します。
|
| SFCError |
Parse(
ACharConstPtr message
) Parse( ACharConstPtr start , ACharConstPtr end ) Parse( SFXAnsiStringConstRef message ) テキストを解析して、メールメッセージとして読み込みます。
|
| SFCError |
ParseHeaderOnly(
ACharConstPtr message
) ParseHeaderOnly( ACharConstPtr start , ACharConstPtr end ) ParseHeaderOnly( SFXAnsiStringConstRef message ) テキストを解析して、ヘッダー部分のみをメールメッセージとして読み込みます。
|
| Void |
RemoveField(
SFXAnsiStringConstRef name
) 指定したフィールドをメールメッセージのヘッダーから削除します。
|
| SFCError |
ReplaceBccField(
SFXAnsiStringConstRef bcc
) メールヘッダーの Bcc フィールドを置き換えます。
|
| SFCError |
ReplaceCcField(
SFXAnsiStringConstRef cc
) メールヘッダーの Cc フィールドを置き換えます。
|
| SFCError |
ReplaceField(
SFXAnsiStringConstRef name
, SFXAnsiStringConstRef value
) 指定したメールヘッダーのフィールドの値を置き換えます。
|
| SFCError |
ReplaceToField(
SFXAnsiStringConstRef to
) メールヘッダーの To フィールドを置き換えます。
|
| SFCError |
SetBody(
SFXAnsiStringConstRef text
) メールメッセージの本文を設定します。
|
| SFCError |
SetContentType(
SFXAnsiStringConstRef mainType
, SFXAnsiStringConstRef subType
) SetContentType( SFXAnsiStringConstRef mainType , SFXAnsiStringConstRef subType , SFXPropertyConstRef attribute ) メールメッセージの Content-Type を設定します。
|
| SFCError |
SetEpilogue(
SFXAnsiStringConstRef text
) マルチパート メッセージのエピローグ( 後置部分 )を設定します。
|
| SFCError |
SetFromField(
SFXAnsiStringConstRef from
) メールヘッダーに From フィールドを設定します。
|
| SFCError |
SetPreamble(
SFXAnsiStringConstRef text
) マルチパート メッセージのプリアンブル( 前置部分 )を設定します。
|
| SFCError |
SetSubjectField(
SFXAnsiStringConstRef subject
) メールヘッダーに Subject フィールドを設定します。
|
| SFXAnsiString |
Write(
Bool isEncoding = true
, UInt32 fieldMaxLen = 78
) メールメッセージをテキストとして書き出します。
|
| 型 |
|---|
|
DocList メールメッセージの配列を表すプロトタイプです。
|
[ public, explicit ] SFXMailMessage(Void);
[ public ] ~SFXMailMessage(Void);
SFXMailMessage クラスを破棄します。 内部で保持していたサブドキュメントも全て削除します。
[ public ] SFCError AddBccField( SFXAnsiStringConstRef bcc // bcc: メール アドレス );
bcc: メール アドレスを指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError AddCcField( SFXAnsiStringConstRef cc // cc: メール アドレス );
cc: メール アドレスを指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError AddField( SFXAnsiStringConstRef name // フィールド名 SFXAnsiStringConstRef value // フィールドの値 );
追加するフィールドの値を指定します。
SFXMailMessage::ReplaceField 関数とは異なり、既存のフィールドの値を削除せずにフィールドの値を追加します。
From フィールドや To フィールドなど、複数のデータが許されないメールヘッダーのフィールドでは SFXMailMessage::ReplaceField 関数を使って フィールドの値を変更します。一方、Received フィールドなどの複数のデータが許されているメールヘッダーのフィールドでは SFXMailMessage::AddField 関数を使ってフィールドの値を追加します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError AddMultipartBody( SFXMailMessagePtr body // 追加するメッセージ );
追加するメッセージを指定します。
SFXMailMessage::AddMultipartBody 関数を使う前に、SFXMailMessage::SetContentType 関数を使って Content-Type を "multipart" に設定します。
[ public ] SFCError AddToField( SFXAnsiStringConstRef to // to: メール アドレス );
to: メール アドレスを指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError AttachFile( SFXBufferConstRef file // 添付するデータ SFXAnsiStringConstRef fileName // 添付ファイル名 SFXAnsiStringConstRef mainType = "application" // 添付するデータの Content-Type SFXAnsiStringConstRef subType = "octet-stream" // 添付するデータの Content-Sub-Type );
添付するデータを指定します。(任意のデータを添付できます。)
添付ファイルの名前を指定します。
![]() |
注意 |
|---|---|
| 空文字列を指定すると、データは添付 ( attachment ) ではなく、内蔵 ( inline ) されるものとして処理されます。 | |
添付するデータの Content-Type を指定します。テキストならば "text"、画像ならば "image" 等と指定します。
![]() |
注意 |
|---|---|
| mainType 引数を指定しない場合のデフォルト値は "application" です。 | |
添付するデータの Content-Sub-Type を指定します。Jpeg 画像ならば mainType に "image"、subType に "jpeg" を指定します。
![]() |
注意 |
|---|---|
| subType 引数を指定しない場合のデフォルト値は "octet-stream" です。 | |
メール本文は、SFXMailMessage::AttachFile 関数を呼び出す前に、SFXMailMessage::SetBody 関数を使って設定します。 SFXMailMessage::AttatchFile 関数を呼び出した時点で、元のメッセージがマルチパート部を持たない場合でもそのメールメッセージはマルチパート部を持つようになります。
添付するデータは自動的に Base64 でエンコードされます。
メールメッセージへのファイル添付は以下のように処理されます。
テキスト ファイルを添付します。
//SFXMailMessage msg に添付する場合 msg.SetBody("メッセージ本文"); //添付ファイルを添付する前に本文をセットする SFXBuffer buff1("abc", 3); //添付するテキスト ファイル( 1 つ目) SFXBuffer buff2("defghij", 7); //添付するテキスト ファイル( 2 つ目) msg.AttachFile(buff1, "filename1.txt", "text", "plain"); msg.AttachFile(buff2, "filename2.txt", "text", "plain");
[ public ] Void Clear(Void);
[ public, const ] SFCError GetAttachedFile( SInt32 index // ファイル番号 SFXBufferPtr data // 添付データ SFXAnsiStringPtr fileName // 添付ファイル名 SFXAnsiStringPtr mainType = null // 添付データの Content-Type SFXAnsiStringPtr subType = null // 添付データの Content-Sub-Type );
何番目のファイルを取り出すかを指定します。
添付ファイルの個数は SFXMailMessage::GetMultipartSize 関数で取得できます。 index は 0 から始まります。
添付データの出力先を指定します。取得する必要がない場合は null を指定します。
添付データのファイル名の出力先を指定します。取得する必要がない場合は null を指定します。
添付データの Content-Type の出力先を指定します。取得する必要がない場合は null を指定します。
添付データの Content-Sub-Type の出力先を指定します。取得する必要がない場合は null を指定します。
Base64 エンコードされたファイルは自動的にデコードされます。
SFXMailMessage::AddMultipartBody | SFXMailMessage::IsMultipart | SFXMailMessage::AttachFile | SFXMailMessage::GetMultipartSize
[ public, const ] SFXAnsiString GetBccField( Bool isDecoding = true // デコードするかどうか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
Bcc フィールドの値を返します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public, const ] SFXAnsiString GetBody( Bool isDecoding = true // デコードを行うか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
メールメッセージの本文を返します。
マルチパート メッセージの場合、空文字列となります。
マルチパート メッセージの本文を取得するには、SFXMailMessage::GetMultipartMessage 関数を使います。
[ public, const ] SFXAnsiStringConstRef GetBodyRef(Void);
メールメッセージの本文への参照を返します。
マルチパート メッセージの場合は、空文字列への参照となります。
SFXMailMessage::GetBodyRef 関数は、メールメッセージの本文を効率よく処理するのに使います。
[ public, const ] SFXAnsiString GetBodyText( Bool isDecoding = true // デコードを行うか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
メールメッセージの本文を返します。
マルチパート メッセージの場合は、マルチパート部の最初のテキストを返します。
[ public, const ] SFXAnsiString GetCcField( Bool isDecoding = true // デコードを行うか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
Cc フィールドの値を返します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public, const ] SFXAnsiString GetContentType(Void);
[ public, const ] SFCError GetContentType( SFXAnsiStringPtr mainType // Content-Type SFXAnsiStringPtr subType // Content-Sub-Type SFXPropertyConstHandle attribute // 属性 );
[ public, const ] SFXDate GetDateField(Void);
Date フィールドの値を SFXDate 形式で返します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public, const ] SFXAnsiString GetEpilogue( Bool isDecoding = true // デコードするかどうか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
マルチパート メッセージのエピローグ( 後置部分 )を返します。
マルチパート メッセージでないときは空文字列を返します。
エピローグ( 後置部分 )とは、 RFC2046 ( MIME Part Two : Media Types Text ) で定義される マルチパート メッセージの最後に付加される文字列です。
SFXMailMessage::SetEpilogue | SFXMailMessage::GetPreamble | SFXMailMessage::SetPreamble | SFXMailMessage::IsMultipart
[ public, const ] SFXAnsiString GetField( SFXAnsiStringConstRef name // フィールド名 Bool isDecoding = true // デコードするかどうか BoolPtr found = null // フィールドが存在するかどうか );
メールヘッダーのフィールド名として有効な文字列を指定します。
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
指定したフィールドが存在した場合、"true" が返される変数へのポインタを指定します。 取得する必要がない場合は、null を指定します。
指定したフィールドの値を返します。
2 つ以上の値が同じフィールド名で保存されていた場合、最初の値だけを読み出します。
同じフィールド名を持つ全ての値を取得するには、SFXMailMessage::GetFieldList 関数を使います。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public, const ] SFXPropertyConstRef GetFieldList(Void);
メールメッセージの全てのヘッダー フィールドを SFXProperty クラスのインスタンスとして返します。
![]() |
メールメッセージのヘッダー編集時の注意事項 |
|---|---|
|
取得した SFXProperty クラスのインスタンスを使ってメールメッセージのヘッダーを編集する場合、 フィールド名の正当性はチェックされません。 そのため、以下の点に注意して編集する必要があります。
| |
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetField | SFXMailMessage::HasField | SFXProperty
[ public, const ] SFXAnsiString GetFromField( Bool isDecoding = true // デコードするかどうか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
From フィールドの値を返します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public ] SFXMailMessagePtr GetMultipartMessage( SInt32 index // 内部メッセージの番号 );
マルチパート メッセージの内部メッセージ( SFXMailMessage クラスのインスタンス ) へのポインタを返します。
マルチパート メッセージの場合、内部に複数のメッセージを SFXMailMessage クラスのインスタンスとして持ちます。
index を指定することで、index 番目のメッセージへのポインタを取得できます( index は 0 から始まります)。
マルチパート メッセージでないとき、或いは index が範囲外のときは null を返します。
マルチパート メッセージの内部メッセージをひとつずつ取得します。
// msg にメールメッセージがある SInt32 i; SFXMailMessage msg; SFXMailMessagePtr mail; if (msg.IsMultipart()) { // multipart かどうかを判定する for (i = 0; i < msg.GetMultipartSize(); i++) { mail = msg.GetMultipartMessage(i); // mail に対する処理 ... } }
SFXMailMessage::IsMultipart | SFXMailMessage::AddMultipartBody | SFXMailMessage::GetMultipartMessage
[ public, const ] UInt32 GetMultipartSize(Void);
マルチパート メッセージの内部メッセージの個数を返します。
メッセージがマルチパート部を持たないときは 0 を返します。
[ public, const ] SFXAnsiString GetPreamble( Bool isDecoding = true // デコードするかどうか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
マルチパート メッセージのプリアンブル( 前置部分 )を返します。
マルチパート メッセージでないとき、空文字列を返します。
プリアンブル( 前置部分 )とは、 RFC2046 ( MIME Part Two : Media Types Text ) で定義される マルチパート メッセージの最初に付加される文字列です。
"This is a MIME multipart message." などの文字列が設定されます。
SFXMailMessage::SetPreamble | SFXMailMessage::GetEpilogue | SFXMailMessage::SetEpilogue | SFXMailMessage::IsMultipart
[ public, const ] SFXAnsiString GetSubjectField( Bool isDecoding = true // デコードするかどうか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
Subject フィールドの値を返します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public, const ] SFXAnsiString GetToField( Bool isDecoding = true // デコードするかどうか );
デコードするどうかを指定します。
true の場合、Quoted-Printable エンコードまたは Base64 エンコードされたメールメッセージをデコードします。日本語は Shift-JIS コードに変換します。
デフォルトは true です。
To フィールドの値を返します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetFieldList | SFXMailMessage::HasField
[ public, const ] Bool HasField( SFXAnsiStringConstRef name // フィールド名 );
メールヘッダーのフィールド名として有効な文字列を指定します。
SFXMailMessage::AddField | SFXMailMessage::ReplaceField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public, const ] Bool IsMultipart(Void);
Content-Type の mainType が "multipart" の場合、マルチパート メッセージです。
[ public ] SFCError Parse( ACharConstPtr message // 解析するテキスト );
[ public ] SFCError Parse( SFXAnsiStringConstRef message // 解析するテキスト );
[ public ] SFCError Parse( ACharConstPtr start // 解析するテキストの先頭へのポインタ ACharConstPtr end // 解析するテキストの終端へのポインタ );
メールメッセージとして解析するテキストです。
メールメッセージとして解析するテキストの先頭へのポインタです。
メールメッセージとして解析するテキストの終端へのポインタです。
マルチパート メッセージにも使えます。
[ public ] SFCError ParseHeaderOnly( ACharConstPtr message // 解析するテキスト );
[ public ] SFCError ParseHeaderOnly( SFXAnsiStringConstRef message // 解析するテキスト );
[ public ] SFCError ParseHeaderOnly( ACharConstPtr start // 解析するテキストの先頭へのポインタ ACharConstPtr end // 解析するテキストの終端へのポインタ );
メールメッセージとして解析するテキストです。
メールメッセージとして解析するテキストの先頭へのポインタです。
メールメッセージとして解析するテキストの終端へのポインタです。
[ public ] Void RemoveField( SFXAnsiStringConstRef name // 削除するフィールド名 );
指定したフィールドが存在しない場合は何も処理されません。
[ public ] SFCError ReplaceBccField( SFXAnsiStringConstRef bcc // Bcc );
置き換える Bcc フィールドの値を指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError ReplaceCcField( SFXAnsiStringConstRef cc // Cc );
置き換える Cc の値を指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError ReplaceField( SFXAnsiStringConstRef name // フィールド名 SFXAnsiStringConstRef value // 置き換えるフィールドの値 );
メールヘッダーのフィールド名として有効な文字列を指定します。
置き換える値を指定します。
指定したフィールドがないときは、その値で新たにフィールドを追加します。
指定したフィールドがひとつだけある場合、その値を指定した値で置き換えます。
同じフィールド名のフィールドが 2 つ以上がある場合、最初のフィールドの値だけを指定した値で置き換えます。
SFXMailMessage::HasField | SFXMailMessage::AddField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError ReplaceToField( SFXAnsiStringConstRef to // To );
置き換える To フィールドの値を指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError SetBody( SFXAnsiStringConstRef text // メールメッセージの本文 );
メールメッセージの本文です。
![]() |
マルチパート メッセージの場合 |
|---|---|
|
マルチパート メッセージの場合、SFXMailMessage::SetBody 関数は失敗します。 マルチパート メッセージに本文を追加するには、SFXMailMessage クラスのインスタンスを新たに作成し、 そのインスタンスに本文を設定して、SFXMailMessage::AddMultipartBody 関数を使って そのインスタンスをマルチパート メッセージに追加します。 | |
[ public ] SFCError SetContentType( SFXAnsiStringConstRef mainType // メインタイプ SFXAnsiStringConstRef subType // サブタイプ );
[ public ] SFCError SetContentType( SFXAnsiStringConstRef mainType // メインタイプ SFXAnsiStringConstRef subType // サブタイプ SFXPropertyConstRef attribute // 属性 );
mainType が "multipart" の場合、メールメッセージはマルチパート メッセージとして処理されます。
[ public ] SFCError SetEpilogue( SFXAnsiStringConstRef text // エピローグ( 後置部分 ) );
エピローグ( 後置部分 )とは、 RFC2046 ( MIME Part Two : Media Types Text ) で定義される マルチパート メッセージの最後に付加される文字列です。
マルチパート メッセージでない場合、設定しても無効です。
SFXMailMessage::GetEpilogue | SFXMailMessage::GetPreamble | SFXMailMessage::SetPreamble | SFXMailMessage::IsMultipart
[ public ] SFCError SetFromField( SFXAnsiStringConstRef from // 差出人 );
From フィールドの値を指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFCError SetPreamble( SFXAnsiStringConstRef text // プリアンブル( 前置部分 ) );
プリアンブル( 前置部分 )とは、 RFC2046 ( MIME Part Two : Media Types Text ) で定義される マルチパート メッセージの最初に付加される文字列です。
"This is a MIME multipart message." などの文字列を設定します。
マルチパート メッセージがでない場合、設定しても無効です。
SFXMailMessage::GetPreamble | SFXMailMessage::GetEpilogue | SFXMailMessage::SetEpilogue | SFXMailMessage::IsMultipart
[ public ] SFCError SetSubjectField( SFXAnsiStringConstRef subject // 件名 );
件名を指定します。
SFXMailMessage::ReplaceField | SFXMailMessage::HasField | SFXMailMessage::GetField | SFXMailMessage::GetFieldList
[ public ] SFXAnsiString Write( Bool isEncoding = true // エンコードするかどうか UInt32 fieldMaxLen = 78 // ヘッダーの折り返し桁数 );
エンコーディングするかどうかを指定します。
true にすると、Shift-JIS コードでエンコードされたヘッダーは Base64 エンコードされて書き出されます。 また、メールメッセージの本文は JIS コード ( ISO-2022-JP ) でエンコードされます。
デフォルトでは true です。
ヘッダーの折り返し桁数( CR と LF は除く)を指定します。
fieldMaxLen 桁より大きな桁のヘッダーは自動的に折り返されます。 4 以上 998 以下の範囲にある数字を指定します。
メールメッセージをテキストで返します。
メールメッセージをテキストとして書き出します。isEncode パラメータを true に設定すると、メール送信に適した文字コードに自動変換します。
typedef SFXArray<SFXMailMessagePtr> DocList
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|