none
IIS10.0上のクラシックASP用で作ったCDOメッセージスクリプトで同じメッセージ(メール)が2度送信されてしまう。 RRS feed

  • 質問

  • CDOメッセージを使ったのは初めてです。まずはネット上に落ちていたサンプルスクリプトから以単純なCDOメッセージスクリプトのクラシックASPファイルを作りましたところ、このファイルをブラウザで読み込むと正常にメッセージ(メール)が(1度だけ)送信されたので、

    実際にWEBコンテンツのあるサイトにメッセージ内容、送信元メールアドレス及び送信先メールアドレスをDBから呼び出して変数名もこのサイトの制作者に合わせてCDOメッセージスクリプト作ったところ、なぜか、同じメッセージ(メール)が2度送信されてしまうのです。エラーは特に出ていませんので、文法の間違いではないと思うのですがどの部分で、同じメッセージ(メール)が2度送信されてしまうのか分からなくて困っています。

    以下、サンプルで作ったクラシックASP用CDOメッセージスクリプトと、CDOメッセージが2回も送信されてしまうASP用CDOメッセージスクリプトを記載しておきます。

    ----------------------------サンプルで作ったクラシックASP用CDOメッセージスクリプトここから-------------------------
    <%
    Dim objCDO
    Set objCDO = CreateObject("CDO.Message")

    '送受信アドレスの設定
    objCDO.From = "info@******.jp"
    objCDO.To = "*******@*****.com"

    'サブジェクトの設定
    objCDO.Subject = "CDOメッセージ件名テスト"

    '本文の設定
    objCDO.TextBody = "CDOメッセージ送信本文テスト"

    '
    '送信方法の指定→CDOメッセージ
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'gmoのsmtpサーバーのポート番号の指定
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587 

    'gmoのsmtpサーバーの指定
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="smtp.*******.jp"

    'SSL通信有無の指定[True/False]
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = True

     'タイムアウト時間の指定(秒
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

    'SMTPユーザーネームの指定
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") ="useraccount"

     'SMTPパスワードの指定
    objCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

    objCDO.Configuration.Fields.Update

    '送信処理
    objCDO.Send

    Set objCDO = Nothing

    -----------------------------サンプルで作ったクラシックASP用CDOメッセージスクリプトここまで-------------------------




    --------------------CDOメッセージが2回も送信されてしまうASP用CDOメッセージスクリプトここから-------------------------


    'メッセージをDBから取り出して変数に格納処理------

    msg = msg & "=============================================================" & Chr(13) & Chr(10) & "" _
    & Chr(13) & Chr(10) & "" _
    & "Subtotal :" & rec.Fields("subtotal") & "US dollar" & Chr(13) & Chr(10) & "" _
    & "additional shipping cost:" & rec.Fields("carriage") & "US dollar" & Chr(13) & Chr(10) & "" _
    & "Total:" & rec.Fields("total") & "US dollar" & Chr(13) & Chr(10) & "" _

    & "Your request:" & memo & Chr(13) & Chr(10) & "" _
    & Chr(13) & Chr(10) & "" _
    & NOW() & Chr(13) & Chr(10) & "" _
    & Chr(13) & Chr(10) & "" _
    & Chr(13) & Chr(10) & "" _
    & "About payment" & Chr(13) & Chr(10) & "" _
    & pay_memo & Chr(13) & Chr(10) & "" _
    & Chr(13) & Chr(10) & "" _
    & Chr(13) & Chr(10) & "" _
    & mail_ft & Chr(13) & Chr(10) & ""

    '---------------cdoメッセージメール送信処理ここから-----------------------------------------

    Set objCDOConf = Server.CreateObject ("CDO.Configuration")
    ' ** SET AND UPDATE FIELDS PROPERTIES **
    With objCDOConf
    '送信方法の指定→CDOメッセージ
        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'smtpサーバーのポート番号の指定
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587

    'GMOのSMTPサーバーの指定
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="smtp.*******.jp"

    'SSL通信有無の指定[True/False]
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")  = True

    'タイムアウト時間の指定(秒
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

    'SMTPユーザーネームの指定
        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user_account"

     'SMTPパスワードの指定
        .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
        .Fields.Update 
    End With
    Dim myMail
    set myMail = Server.CreateObject("CDO.Message")
    Set myMail.Configuration = objCDOConf
    ' myMail.MailFormat = 0 
    myMail.From = r_mail
    myMail.To = email
    ' myMail.Bcc = "master@jidai.jp"
    myMail.Subject = "Thank you <" & t_name & ">"
    myMail.TextBody = msg

    ' myMail.Value("MIME-Version") = "1.0"
    ' myMail.Value("Content-Type") = "text/plain; charset=""iso-8859-1"""
    ' myMail.Value("Content-Transfer-Encoding") = "7bit"

    'response.write(r_mail)

    myMail.Send
    Set myMail = Nothing
    rec.Close
    rec2.Close
    End Function
    --------------------CDOメッセージが2回も送信されてしまうASP用CDOメッセージスクリプトここまで-------------------------

    2020年2月21日 23:14