重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!goo新規会員登録

ASPからBASP21を利用してメールを送信しています。
その際、1つの宛先に対して2通のメールが送信される現象が発生しています。

下にソースを表示します。
メール内容は同一ですので、宛先をデータベースから取得し、Loop処理の中で宛先だけを変更して送信処理を行っています。

rec.Open scmd,,adOpenStatic,adLockReadOnly

Set basp = CreateObject("basp21")
logfile = "D:\"
svname = "xxx.xxx.xx.xx"
mailfrom = "xxxx@xxx.xx.xx"
subj = "件名"
body = "内容"

Do Until rec.EOF
  mailto = rec("email")

  msg = basp.SendMailEx(logfile,svname,mailto,mailfrom,subj,body,"")
  If msg <> "" Then
    エラー処理
  End If
  rec.MoveNext
Loop

この処理を通すと、1つの宛先に2通づつメールが送信されます。

皆様のお力をお貸しください。お願いします。

A 回答 (2件)

となると BASP21 のサイトでご質問なさったほうが厚いサポートを受けられるかと思います。


ここでは経験したことがある方がいないと回答を得られないですし。
力になれなくて申し訳ないですね。
    • good
    • 0
この回答へのお礼

原因がわかりました。
コーディングミスで2重にsubmitしていた為、送信処理が2回処理されていただけでした。

ボタンのinput typeを"submit"に指定しているにもかかわらず、
エラーチェック後のJavaScriptでform.submitを行っていました。
いや恥ずかしいです。

temtecomai2さん、ご回答ありがとうございます。
次回、疑問や問題があったらBASP21のサイトで聞いてみたいと思います。

ありがとうございました。

お礼日時:2006/03/02 10:17

そういう現象にあったことないですねぇ・・・



まず、DB から取得したレコードセットには同じ宛先を持つレコードは存在しないかどうか確認しましたか?
(まぁしたとは思いますが・・・)
んで、ループ内でメール送信している部分をバッサリとコメントアウトしちゃって、ブラウザに宛先をズラズラと書き出す処理とかに変更してみてループの推移を確認してみるとか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ご指摘のようにやってみたのですが、ループは一回しか通っていませんでした。
DBから取得するレコードセットも、条件を絞り1レコードのみでやってみましたが、結果は変わらずです。

ちなみにループ処理を外し、宛先をソースに直書きして1通しか処理されないようにしても、同じメールが2通受信されてしまいます。
本当に謎です。。。

お礼日時:2006/03/01 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!