|
十進BASICから電子メールを送信します(※送信のみ、ファイル添付もできません)
POCOライブラリーを使用し、ネット上のサンプルを基に作成しました(※サンプルを流用しただけです)
送信元、送信先のメールアドレス、SMTPサーバー名を設定してください(下記画像の赤丸を参考)
VC++2012(x86)にてライブラリーをビルド、コンパイルしました。
(VC++2015ではBASIC側で「dllがロードできない」等のエラーが出たため)
ASSIGN文でdllファイルを指定してください。
LET SUBJECT$= "送信テスト" !'タイトル
LET BODY$= "メールテスト"&CHR$(13)&CHR$(10)&"メールを送信します" !'本文
LET SFROM$= "admin@example.com" !'送信元メールアドレス
LET STO$= "admin@example.com" !'送信先メールアドレス
LET SMTP$= "smtpserver.example.com" !'SMTPサーバー名
LET K=SENDMAIL(SMTP$,SFROM$,STO$,SUBJECT$,BODY$)
IF K=0 THEN
PRINT "送信終了"
ELSE
PRINT "送信 ERROR!!"
END IF
END
EXTERNAL FUNCTION SENDMAIL(SMTP$,SFROM$,STO$,SUBJECT$,BODY$)
ASSIGN "sendmail.dll","sendmail"
END FUNCTION
-------------------------------------------------------------------------------------
sendmail.cpp
#include <iostream>
#include "Poco/Net/MailMessage.h"
#include "Poco/Net/MailRecipient.h"
#include "Poco/Net/SMTPClientSession.h"
#include "Poco/Net/StringPartSource.h"
#include "Poco/Exception.h"
using namespace std;
using Poco::Net::MailMessage;
using Poco::Net::MailRecipient;
using Poco::Net::SMTPClientSession;
using Poco::Net::StringPartSource;
using Poco::Exception;
extern "C" __declspec(dllexport) int sendmail(char *smtp,char *from,char *to,char *title,char *body)
{
string smtphost = smtp; // SMTPサーバの名前
string _from = from; // 送信元のメールアドレス
string _to = to; // 送信先のユーザのメールアドレス
string _title=title; // タイトル
string content=body; // 本文
try
{
MailMessage message;
message.setSender(_from);
message.addRecipient(MailRecipient(MailRecipient::PRIMARY_RECIPIENT, _to));
message.setSubject(_title);
message.addContent(new StringPartSource(content));
SMTPClientSession session(smtphost);
session.login();
session.sendMessage(message);
session.close();
}
catch(Exception& exc)
{
return 1;
}
return 0;
}
なお、実行には別途「PocoFoundation.dll」「PocoNet.dll」が必要です。(BASIC.EXEと同じフォルダに入れてください)
これらを同梱してアップしましたので下記URLからダウンロードしてください。(sendmail.zip)
有効期限は本日より1ヶ月です
ダウンロードパス:shibacchi
※備考
こちらは以前、SECONDさんが作成したものです。
|
|