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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.