MFCはblatを使用してメールを送信します

blatのダウンロードアドレス:http ://www.blat.net

smtpサービスのメール送信に使用しました。ここではqqメールボックスを使用しています。qqメールボックスで使用されるパスワードは認証コードであり、qqメールボックス設定でsmtpサービスを有効にできます。
ダウンロードされるのは、次のようなファイルディレクトリ構造です。

最初に、マシンに登録できます。管理者でcmdを実行するには、cdからblat.exeディレクトリに次のコマンドを入力します:
blat -install smtp.qq.com [email protected] 3 25
特定の操作は次のとおりです。

次のコードは、主にblatdll.hヘッダーファイルを紹介し、libを紹介し、blat.dllをロードし、dllからsendメソッドを取得して、最後に送信するコードを記述します。

ここで#pragmaコメント(lib、 "blat")は、libの検索ディレクトリを構成するためのものです。

.libファイルのように.dllをロードすることはできません。何をすべきかわからないので、コードではLoadLibrary()メソッドを使用します。
特定の使用法:

typedef int(__ stdcall * pSend)(LPCSTR sCmd); 
	HINSTANCE hdll; 
	pSend mySend; 
	hdll = LoadLibrary(TEXT( "blat32 / blat.dll")); 
	mySend =(pSend)GetProcAddress(hdll、 "送信"); 
    // mySend(dBuf)

  ここで注意する必要があります:typedef int(__ stdcall * pSend)(LPCSTR sCmd);コンパイルされたwin32は__stdcallを追加する必要があります。そうしないと、このメソッドがDLLに見つかりません。メソッドに一致しますが、渡された文字列は自動的にインターセプトされます。

私の電子メールメッセージを作成するには、ここで確認コードを送信するのは簡単です。

CString yzm; 
    yzm.Format(TEXT(" Verification code:%d " )、m_uYzm); 

    CString cmd2; // = TEXT( "-to [email protected] -subject change password-body '%s' -u 576484879 @ qq.com -pw lakqyyyykfnrbehi -charset utf-8 "); 
    cmd2.Format(TEXT(" -to [email protected] -subject change password-body%s -u [email protected] -pw authorization code-charset utf-8 ")、yzm);

ここでは、次のようにCStringをchar *に変換する必要があります

wchar_t * sBuf = cmd2.AllocSysString(); 
    DWORD dBufSize = WideCharToMultiByte(CP_OEMCP、0、sBuf、-1、NULL、0 、NULL、FALSE);
     // ターゲットキャッシュ
    文字を割り当てる * dBuf = new  char [dBufSize]; 
    memset( DBUF、0 、dBufSize); 

    // 変換
    INT nRet WideCharToMultiByte =(CP_OEMCP、0、SBUF、 - 1。、DBUF、dBufSize、NULL、FALSE)。

最後は
    int x = mySend(dBuf)を送信することで
全体が完了します。

おすすめ

転載: www.cnblogs.com/HelloQLQ/p/12679526.html