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)を送信することで、
全体が完了します。