TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CSmtpClient クラス

SMTP(Simple Mail Transfer Protocol)プロトコル処理クラス [詳解]

#include <TnbSmtpClient.h>

+ CSmtpClient の継承関係図

公開メンバ関数

void AddToAddr (LPCTSTR lpszToAddr)
 [設定] 宛先名設定 [詳解]
 
 CSmtpClient (void)
 コンストラクタ [詳解]
 
CAscii GetOpeningMessage (void) const
 [取得] 接続成功時の文字列. [詳解]
 
void InitToMailAddr (void)
 [設定] 宛先名設定初期化 [詳解]
 
bool Send (const CMailContent &mail)
 [送信] メール送信. [詳解]
 
void SetDomain (LPCTSTR lpszDomain)
 [設定] 送信名設定 [詳解]
 
void SetExtendedHelloMode (bool enable)
 [設定] ExtendedHelloMode設定 [詳解]
 
void SetFromMailAddr (LPCTSTR lpszFromMailAddr)
 [設定] 送信者アドレス設定 [詳解]
 
void SetPopBeforeMode (CPop3Client *pPop3, DWORD dwWait=300)
 [設定] POP Before SMTP 設定 [詳解]
 
void SetServerName (LPCTSTR lpszName, WORD wPort=25)
 [設定] 通信設定. [詳解]
 
virtual ~CSmtpClient (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual bool IsValidResponse (const CAscii &a) const
 [確認] レスポンスチェック [詳解]
 
virtual bool OnConnect (void)
 [設定] 接続時処理 [詳解]
 
virtual bool QuitCommand (CAscii &_res)
 [設定] 終了コマンド [詳解]
 

詳解

SMTP(Simple Mail Transfer Protocol)プロトコル処理クラス

使用例

    CPop3Client pop3;   //POP Before SMTP 用
    pop3.SetServerName(_T("Localhost"));
    pop3.SetUser(_T("master"), _T("master"));
    pop3.SetKind(pop3.APOP);

    CMailContent mail;  //メール内容
    mail.SetFromMailAddr("boss@tnb.co.jp", "ぼす");       
    mail.AddToMailAddr("oyabun@tnb.co.jp", "おやぶん");
    mail.AddCcMailAddr("master@tnb.co.jp", "マスター");
    mail.SetSubject("例の件");
    mail.AddSendTextData("こんにちわ\r\n例の件、どうですか?");        

    CSmtpClient smtp;
    smtp.SetServerName(_T("localhost"));
    smtp.SetDomain(_T("boss@tnb.co.jp"));
    smtp.SetPopBeforeMode(&pop3);
    smtp.Send(mail);
 

必要ファイル
TnbSmtpClient.h
日付
06/09/28 暫定作成(とりあえず、送れる)
06/09/29 POP Before SMTP 、追加。
06/10/03 BASE64 変換対応。テキストだけならメーラとして使用可能に。
06/10/05 マルチパーツ対応。
07/06/15 通信クラスを交換できるよう対応
08/07/31 ExtendedHelloMode() を追加。
09/09/15 親クラスの整理に追従。

TnbSmtpClient.h61 行目に定義があります。

構築子と解体子

◆ CSmtpClient()

CSmtpClient ( void  )

コンストラクタ

TnbSmtpClient.h67 行目に定義があります。

◆ ~CSmtpClient()

virtual ~CSmtpClient ( void  )
virtual

デストラクタ

TnbSmtpClient.h72 行目に定義があります。

関数詳解

◆ AddToAddr()

void AddToAddr ( LPCTSTR  lpszToAddr)

[設定] 宛先名設定

注意
Send() で適用する CMailContent クラスで設定されているものと異なる宛先に送りたい場合のみに使用します。
引数
lpszToAddr宛先アドレス(Ascii文字のみ)。

TnbSmtpClient.h154 行目に定義があります。

◆ GetOpeningMessage()

CAscii GetOpeningMessage ( void  ) const

[取得] 接続成功時の文字列.

覚え書き
Connectに成功すると、文字が送られてくる。それをこの関数で得ることが可能。 Disconnectしても次接続するまで同じ文字列が得られます
戻り値
文字列

TnbSmtpClient.h93 行目に定義があります。

◆ InitToMailAddr()

void InitToMailAddr ( void  )

[設定] 宛先名設定初期化

TnbSmtpClient.h144 行目に定義があります。

◆ IsValidResponse()

virtual bool IsValidResponse ( const CAscii a) const
protectedvirtual

[確認] レスポンスチェック

引数
a受信した文字列
戻り値
true正常.
false異常

TnbSmtpClient.h235 行目に定義があります。

◆ OnConnect()

virtual bool OnConnect ( void  )
protectedvirtual

[設定] 接続時処理

覚え書き
通常、認証処理を行なう
戻り値
Empty状態成功。
文字有りエラー。文字列は GetErrorText() で取得可能になる。

TnbSmtpClient.h262 行目に定義があります。

◆ QuitCommand()

virtual bool QuitCommand ( CAscii _res)
protectedvirtual

[設定] 終了コマンド

覚え書き
Command() を使うことを想定。
引数
[out]_resレスポンス文字が格納。
戻り値
true成功。
false失敗(理由は GetErrorText() で取得可能.)。

TnbSmtpClient.h251 行目に定義があります。

◆ Send()

bool Send ( const CMailContent mail)

[送信] メール送信.

メーラの設定、送信名、宛先など、先に設定しておく必要があります。

引数
mail送信内容。送信名、宛先など、設定完了しているオブジェクトを指定します。
戻り値
true成功。
false失敗。

TnbSmtpClient.h166 行目に定義があります。

◆ SetDomain()

void SetDomain ( LPCTSTR  lpszDomain)

[設定] 送信名設定

覚え書き
送信のために必須な設定です。
引数
lpszDomainドメイン名(HELOコマンドで使用)。

TnbSmtpClient.h115 行目に定義があります。

◆ SetExtendedHelloMode()

void SetExtendedHelloMode ( bool  enable)

[設定] ExtendedHelloMode設定

覚え書き
デフォルトでは true (EHLOが使われる)です。
引数
enabletrue なら EHLO 、 false なら HELO が使われます。

TnbSmtpClient.h82 行目に定義があります。

◆ SetFromMailAddr()

void SetFromMailAddr ( LPCTSTR  lpszFromMailAddr)

[設定] 送信者アドレス設定

注意
Send() で適用する CMailContent クラスで設定されているものと異なる送信者にしたい場合のみに使用します。
引数
lpszFromMailAddrアドレス

TnbSmtpClient.h136 行目に定義があります。

◆ SetPopBeforeMode()

void SetPopBeforeMode ( CPop3Client *  pPop3,
DWORD  dwWait = 300 
)

[設定] POP Before SMTP 設定

引数
pPop3認証設定した、POP3クライアント。NULLなら設定解除。
dwWait認証後のWait(ms)。省略すると300msになります。

TnbSmtpClient.h125 行目に定義があります。

◆ SetServerName()

void SetServerName ( LPCTSTR  lpszName,
WORD  wPort = 25 
)

[設定] 通信設定.

覚え書き
Winsock を使用して通信を行なうために、サーバ名、ポート番号を指定します。
本メソッドを実行すると SetReportInterface() の設定は無効になります。
引数
lpszNameサーバ名。
wPortポートナンバー。省略すると25。

TnbSmtpClient.h105 行目に定義があります。