PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6590 99/06/03 11:38:59 RE(5):PB6.5: Mailの送信について By Dave Mustaine
6564 99/06/02 15:45:46 RE(4):PB6.5: Mailの送信について By あすかちゃんの父
6562 99/06/02 15:13:01 RE(3):PB6.5: Mailの送信について By にしやん
6553 99/06/02 10:17:41 RE(2):PB6.5: Mailの送信について By しん
6543 99/06/01 19:23:47 RE(1):PB6.5: Mailの送信について By M.M
6539 99/06/01 17:01:54 PB6.5: Mailの送信について By Dave Mustaine

カテゴリ:スクリプトの記述
日付:1999年06月02日 15:13 発信者:にしやん
題名:RE(3):PB6.5: Mailの送信について

Dave Mustaineさん、こんにちは。

BSMTP.DLL の BSendMail はVBやPBでは使えないです。
VBで使用するときは SendMail の方を使うらしいので、PBでもこちらだと思います。
そもそも、Dave Mustaine さんが記述した宣言も SendMail の形式です。

でも、SendMail でもなぜかエラーが出てしまいますね。

そこで逆アセンブルして解析してみたところ、各引数は、文字列のポインタのポインタを
渡すようになっていることがわかりました。

説明文と違うような気もするのですが‥‥‥
本当にVBでは利用できているのでしょうか?

とにかく、そういうわけで次のようにすれば利用できることがわかりました。


外部関数
FUNCTION String SendMail(REF Long szServer,REF Long szTo,REF Long szFrom,REF Long szSubject,&
    REF Long szBody,REF Long szFile) LIBRARY \"BSMTP.DLL\"
FUNCTION Long lstrcpyn(REF String dst, REF String src, Long length) &
    LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"lstrcpynA\"

スクリプト
//変数宣言
String szServer,szTo,szFrom,szSubject,szBody,szFile
Long lpszServer,lpszTo,lpszFrom,lpszSubject,lpszBody,lpszFile
String ErrorMessage

//引数セット
szServer = \"SMTPサーバのアドレス\"
szTo = \"宛先メールアドレス\"
szFrom = \"送信元メールアドレス\"
szSubject = \"件名\"
szBody = \"本文\"
szFile = \"添付ファイル名\"

//引数のポインタ値取得
lpszServer = lstrcpyn(szServer,szServer,0)
lpszTo = lstrcpyn(szTo,szTo,0)
lpszFrom = lstrcpyn(szFrom,szFrom,0)
lpszSubject = lstrcpyn(szSubject,szSubject,0)
lpszBody = lstrcpyn(szBody,szBody,0)
lpszFile = lstrcpyn(szFile,szFile,0)

//メール送信処理
ErrorMessage = SendMail(lpszServer,lpszTo,lpszFrom,lpszSubject,lpszBody,lpszFile)
IF ErrorMessage = \"\" THEN
  MessageBox(\"送信成功\",\"送信成功\")
ELSE
  MessageBox(\"送信失敗\",ErrorMessage)
END IF

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS Oracle SQL*Net 2.2
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.