BSMTP.DLL でメール送信

  まずは、basp21 をインストール



basp21 を利用して C からメール送信を行なうには、方法としていくつかあります。そのうちの一つが、BSMTP.DLL を通常の Windows API のようにして使う方法です。

basp21 をインストールすると、自動的に BSMTP.DLL はシステムディレクトリにコピーされます。それと同時に、「Bsmtp.h」「bsmtp.lib」 もシステムディレクトリにコピーされます

Bsmtp.h は、Visual Studio のインストールディレクトリの VC98\Include にコピーし、bsmtp.lib は、VC98/Lib へコピーして下さい



  Win32 Application プロジェクトで



「ダイアログの使用」 を参考にして、スケルトンを作成して下さい

ヘッダーファイルは以下のようにします

  
#include "stdafx.h"
#include "resource.h"

#include <ole2.h>
#include <oleauto.h>
#include <conio.h>
#include <Bsmtp.h>
  



  ダイアログメッセージハントラの変更とユーザ関数の追加

  
void MySendMail( HWND hWnd );
// バージョン情報ボックス用メッセージ ハンドラ
LRESULT CALLBACK About( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
	switch( message ) {
		case WM_INITDIALOG:
			SetFocus( GetDlgItem( hDlg, IDC_TO ) );
			return FALSE;

		case WM_COMMAND:
			if( LOWORD(wParam) == IDOK ) {
				if ( MessageBox(
						hDlg,
						"メールを送信しますか?",
						"確認",
						MB_OKCANCEL
						) == IDOK ) {
					MySendMail( hDlg );
				}
				return TRUE;
			}
			if( LOWORD(wParam) == IDCANCEL ) {
				EndDialog( hDlg, LOWORD(wParam) );
				return TRUE;
			}
			break;
	}
	return FALSE;
}

void MySendMail( HWND hWnd )
{

	int ret;
	char *pszSmtpServer = "localhost";
	char szTo[80];
	char szFrom[80];
	char szSubject[80];
	char szBody[4096];
	char szErrorMessage[80];
	szErrorMessage[0] = 0x00;

	GetDlgItemText( hWnd, IDC_TO, szTo, 80 );
	GetDlgItemText( hWnd, IDC_FROM, szFrom, 80 );
	GetDlgItemText( hWnd, IDC_SUBJECT, szSubject, 80 );
	GetDlgItemText( hWnd, IDC_BODY, szBody, 4096 );

	ret = BSendMail(
			pszSmtpServer,
			szTo,
			szFrom,
			szSubject,
			szBody,
			NULL,
			szErrorMessage
	);

	if ( szErrorMessage[0] != 0x00 ) {
		MessageBox( hWnd, szErrorMessage, "エラーメッセージ", MB_OK );
	}

}
  



  プロジェクトの設定

リンクタブの、オブジェクト/ライブラリモジュールのフィールドの最後に、 bsmtp.lib を追加して下さい



  さて、smtp サーバーをどうするか?

メール送信には、SMTP サーバが必要です。この程度の知識は、C のマテリアルの範疇です。詳細はぜひ自分で調べて下さい

自分のメールアドレスをお持ちの方はそれを使用していただいても良いのですが、SMTP サーバへのアクセスの詳細についてはそれぞれ固有の情報が存在して一般的では無いかもしれません。そこで、ここではローカルに フリーの SMTP サーバをインストールして実行してみたいと思います。ですから、コードでは以下のようになっています

  
char *pszSmtpServer = "localhost";
  

フリーの SMTP サーバ「MELON」

  
MELON を使用する際、メールアドレスは、< と > で挟んで下さい
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ