Eメール送信

 投稿者:しばっち  投稿日:2017年11月21日(火)19時11分1秒
  十進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さんが作成したものです。

 

戻る