Excel VBA basp21でメール送信エラー

このQ&Aのポイント
  • Excel VBA basp21でメール送信エラーが発生しました。原因としてはSMTP設定の関係が考えられます。
  • メーラーからの送受信は成功しており、参照設定も完了しています。しかし、メール送信時にはエラーが発生します。
  • 質問者はどのようにコードを書き足せばメール送信エラーが解消できるのかわからず、質問しています。
回答を見る
  • ベストアンサー

Excel VBA basp21でメール送信エラー

メール送信エラーとなってしまいます。 ”Cant connect Server 11004” 同アカウントでメーラーからの送受信は成功しております。 原因はSMTP設定の関係だと思うのですが、どのようにコードを書き足せば良いのでしょうか。 また参照設定は完了しています。 ご存知のかたご回答をよろしくお願いします。 コードは以下です。 Private Sub cmd送信_Click() Dim bobj As Object Dim svname As String Dim id As String Dim pass As String Dim msg As Variant '送信チェック用 Dim strMLadr As String Dim strDPadr As String Dim strPW As String 'SMTPサーバ名:ポート番号:タイムアウト秒 svname = "サーバー:587:60" 'ログインID id = "" 'パスワード pass = "" 'オブジェクトを作成 Set bobj = CreateObject("basp21") '宛先 mailto = "" '送信者 strMLadr = "" '(送信者のメールアドレス' strDPadr = "テスト" '(送信者の表示文字列) strPW = "" '(送信者メールアドレスのパスワード) mailfrom = strDPadr & "<" & strMLadr & ">" & vbTab & id & ":" & strPW '件名 subj = "送信テスト" '本文 改行はvbCrLf body = "おはようございます。" & vbCrLf & "今日は良い天気ですね。" 'メール送信 msg = bobj.SendMail(svname, mailto, mailfrom, subj, body, "") ' 送信チェック If msg <> "" Then MsgBox "送信できませんでした。" & vbCrLf & msg, vbOKOnly + vbCritical, "エラー" Else MsgBox "送信に成功しました。", vbOKOnly + vbInformation, "完了" End If End Sub

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんは。 basp21は使ったことがないので的外れかも知れませんが、コードを見る限り、SMTPログインのための変数 id と pass が、送信コマンドのどこにも反映されていないように思うので、ログインセッションが完了していないように思えますが、いかがですか?

toyoucook
質問者

お礼

ご回答有難うございました。 いろいろと試したいと思います。

関連するQ&A

  • BASP21を使ってEXCELからメールの送信

    BASP21を使ってEXCELからメールの送信をしたいのですが、できません。 自分なりに調べた結果、下記のコードになったのですが、どこかおかしいのでしょうか? エラー表示は次になります。 530 5.7.1 client was not authenticated from メールアドレス よろしくお願いいたします。 Sub ボタン2_Click() ''[送信]ボタン Dim bobj, msg As String, i As Long Dim Server As String, Mailto As String, MailFrom As String Dim Subject As String, Attach As String, Body As String On Error Resume Next Set bobj = CreateObject("basp21") ''BASP21オブジェクト ''BASP21がインストールされているかどうかを判定する If Err = 429 Then MsgBox "BASP21がインストールされていません。", vbCritical Exit Sub End If ''必須データのチェック Server = "mail.○○○.com:587:60" ''SMTPサーバー Mailto = "○○○@hotmail.co.jp" ''宛先 MailFrom = "△△△@×××.co.jp" ''差出し人 Subject = "更新連絡" ''タイトル Body = "システムが更新しました" ''本文 msg = bobj.SendMail(Server, Mailto, MailFrom, Subject, Body, Attach) Set bobj = Nothing If msg <> "" Then MsgBox msg, vbExclamation Else MsgBox "メールを送信しました。", vbInformation End If End Sub

  • Accessから複数アドレスにメール送信

    かなり初歩的な質問なのかもしれませんが、どうしても進まないのでどなたかご教授お願い致します。 access2003からBasp21を使用してメール送信フォームを作ってます。複数アドレスに一括で送れるように、宛名フォームから氏名を選択(例として3件)すると、メール送信フォームの「bcc」ボックスに、 "bcc" & vbTab & "abc@xx.com" & vbTab & "def@xx.jp" & vbTab & "ghi@xx.com" と入るようにし、送信ボタンクリックで下記のようなコードを書いてます。 Dim bobj As Object Dim svname As String Dim ID As String Dim Mailto As String Dim MailFrom As String Dim subj As String Dim Body As String Dim pass As String Dim msg As Variant '送信チェック用 'SMTPサーバ名:ポート番号:タイムアウト秒 svname = Me.[smtpサーバー] & ":" & Me.[ポート番号] & ":" & Me.[タイムアウト秒] 'ログインID ID = Me.[ログインID] 'パスワード pass = Me.[パスワード] 'オブジェクトを作成 Set bobj = CreateObject("basp21") '宛先 Mailto = Me.[bcc] '送信者 MailFrom = Me.[送信者] & "<" & ID & ">" & vbTab & ID & ":" & pass '件名 subj = Me.[件名]   '本文 Body = Me.[テキスト169] 'メッセージの送信 msg = bobj.SendMail(svname, Mailto, MailFrom, subj, Body) ' 送信チェック If msg <> "" Then MsgBox "送信できませんでした。" & vbCrLf & msg, vbOKOnly + vbCritical, "エラー" Else MsgBox "送信しました", vbOKOnly + vbInformation, "完了" End If これを実行すると、 「送信できませんでした。 555 5.5.4 Unsupported option: & to "bcc" & vbTab & "abc@xx.com" & vb」 というようなメッセージが出て送信できません。 Mailto = Me.[bcc] の所を、 Mailto ="bcc" & vbTab & "abc@xx.com" & vbTab & "def@xx.jp" & vbTab & "fhi@xx.com" にすれば送信できるのですが、送信先は毎回変わるので Me.[bbc] にアドレスを代入して送信できるようにするにはどうすればいいのでしょうか?

  • BASP21のエラーについて

    Windows XP Excel2003でBASP21を使用してメールを送信させています。 次のようなコードを使用して送信すると エラーの内容 "xxxsmtp.mail.yahoo.co.jp Closig transmission channel You must be pop-aut" 翻訳で ”あなたはホップアップ同型を伝送チャネルにする必要があり” Sub AB_jidou() Dim bobj, msg As String Dim Server As String, Mailto As String, MailFrom As String, Subject As String, Body As String Set bobj = CreateObject("basp21") ''BASP21オブジェクト Server = "xxxsmtp.mail.yahoo.co.jp" ''SMTPサーバー Mailto = "xxxx8743@xxxx.ne.jp" MailFrom = "xxxxxx0@xxx.ne.jp" ''差出し人 Subject = " 取引情報" ''タイトル Body = Sheets(1).Range("U34") ''本文 msg = bobj.SendMail(Server, Mailto, MailFrom, Subject, Body, "") Set bobj = Nothing If msg <> "" Then MsgBox msg End Sub ところが受信を実行するとそれ以降送信が可能になります。 プログラムが走っている間は良いのですが一度閉じてまた立ち上げると同じ症状になります。 その都度受信をするのは大変ですので何とかしたいのですがご存じの方教えてください。 よろしくお願いします

  • basp21を利用した送信

    basp21を利用した送信 エクセル2002使用です。 VBAを利用してbasp21.dll(Proではない)を使ってメール送信ををしたいのですが、 フリーソフト版のbasp21.dllで、(POP before SMTP)は利用できるのでしょうか? sub test() dim bobj as Object dim kekka as string, strkk as string, strjikan as string dim mailServer as string, mailFrom as string, mailTo as string, MailSubject as string, mailBody as string, mailFiles as string Set bobj = CreateObject("basp21") mailServer = "mail.***.com"    ’←(POP before SMTP)にしたいのです。 mailFrom = "***@***.com" mailTo = "***@***.com" MailSubject = "タイトル" mailBody = "本文" mailFiles = "d:\autocsv\wddc\" & strkk & strjikan & ".doc" kekka = bobj.SendMail(mailServer, mailTo, mailFrom, MailSubject, mailBody, mailFiles) end sub よろしくお願いします。

  • Outlookのメールを送信するマクロ

    お世話になっております。 Microsoft Outlook2003使用で メール送信のマクロを見様見真似で作ってみたのですが、本文部分がうまくいきません(Best regardsしか表示されません)。 どうすれば正しく反映されるでしょうか? シートのB1にToアドレスを記入していてTo_addressと名前付 以下、Cc_addressとSubjectも同様にしています。 本文の文章は何行かあり、途中で空白行も入れたいのですが、そこまでまだ手がつけられていません。 本文の文章が3行あるとすると、このマクロではComment1、Comment2、Comment3と名前付しています。 Sub SendEmail() Dim OlApp As Outlook.Application Dim mItem As Outlook.MailItem Dim cell As Range Dim Subj As String Dim EmailAddr As String Dim Recipient As String Dim Msg As String Dim Message As String Dim Sender As String Dim Comments As String Dim Comments2 As String Dim report As String Worksheets("Sheet1").Activate 'Create Outlook object  Set OutlookApp = New Outlook.Application 'Get the data Subj = Range("Subject") EmailAddr = Range("To_address") CCAddr = Range("Cc_address") Body = Range("Comment1") & ("Comment2") & ("Comment3") 'Compose message Msg = Msg & Comment1 & vbCrLf & vbCrLf Msg = Msg & Comment2 & vbCrLf & vbCrLf Msg = Msg & "Best regards," & vbCrLf & vbCrLf 'Create Mail Item Set mItem = OutlookApp.CreateItem(olMailItem) With mItem .To = EmailAddr .CC = CCAddr .BCC = BCCAddr .Subject = Subj .Body = Msg .Display End With End Sub 宜しくお願い致します。

  • basp21でメールが2通送信される

    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通づつメールが送信されます。 皆様のお力をお貸しください。お願いします。

  • BASP21をつかってアクセスからメールを送信

    BASP21をつかってアクセスからメールを送信したいと思っています。 固定のメールアドレスの場合はうまくいくのですが、 フォームの値(メールアドレス)を代入しようとすると、invariant のエラーがでてしまいます。 (固定メールアドレスの記載)  Dim MailTo As String    '宛先  MailTo = "xxx@xx.ne.jp" (フォームの値の記載)  Dim MailTo As String  '宛先  MailTo = "<" & Forms![F_業務管理簿_詳細]![紹介者・担当者_メール1] & ">" フォームの値(メールアドレス)に送信できるようにするにはどのようにすればよいのかご教示くだいさい。 よろしくお願い致します。

  • マクロ Outlook送信メールにエクセルの表を貼り付ける方法

    こんにちは。 送りたいメールの形は 数行の文章のあとに、表を貼り付け、また数行の文章という形式です。 Outlookメールでメールを立ち上げて Comment1と2は文章ですのでエクセルのコラムを引っ張ってくるようにしているのですが、 Comment3部分に別のエクセルにある表をメタ貼りし、Comment4でまた文書を引っ張ってくるとさせたいのですが Comment3部分の動きが出来ません。 Dim OlApp As Outlook.Application Dim mItem As Outlook.MailItem Dim cell As Range Dim Subj As String Dim EmailAddr As String Dim Recipient As String Dim Msg As String Dim Message As String Dim Sender As String Dim Comments As String Dim Comments2 As String Dim report As String '日付の設定 DMY = Range("b_date") DM = Format(Range("b_date").Value, "mmdd") Worksheets("mail").Activate 'Create Outlook object Set OutlookApp = New Outlook.Application 'Get the data Subj = Range("B69") & "_" & DM EmailAddr = Range("B63") CCAddr = Range("B66") Comment1 = Range("H63").Value Comment2 = Range("H65").Value Comment3 = この辺りがわかりません Comment4 =Range("H67").Value 'Compose message Msg = "<font face=""Arial""><font size=2>" Msg = Msg & Comment1 & "<BR><BR><BR>" Msg = Msg & Comment2 & "<BR><BR><BR>" Msg = Msg & Comment3 & "<BR><BR><BR>" Msg = Comment4 & "<BR><BR><BR><BR>" Msg = Msg & "Best regards," & "<BR><BR>" Msg = Msg & "</font></font>" 'Create Mail Item Set mItem = OutlookApp.CreateItem(olMailItem) With mItem .To = EmailAddr .CC = CCAddr .BCC = BCCAddr .Subject = Subj .HTMLBody = Msg .Display End With End Sub どなたかご存知ではないでしょうか? 毎回で申し訳ございませんが、どうぞ宜しくお願い致します。

  • VBAのデバックをどうかお助けください。

    ネットなどで調べたコードをつなぎ合わせ、なんとか下記のようなコードを作成しました。 Sub TEST2() ActiveSheet.Protect UserInterfaceOnly:=True Dim fname As String fname = Range("C3").Text ActiveSheet.Select ActiveSheet.Copy Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Range("A1").Select ActiveWorkbook.SaveAs _ Filename:="C:\Documents and Settings\***\My Documents\ファイル\" & fname & ".xls", FileFormat:=xlNormal Dim MailSmtpServer As String Dim MailFrom As String Dim MailTo As String Dim MailSubject As String Dim MailBody As String Dim MailAddFile As Variant Dim strMSG As String ' 添付ファイルの選択 MailAddFile = "C:\Documents and Settings\***\My Documents\ファイル\" & fname & ".xls" ' 送信確認 If MsgBox("メールを送信します。" & vbCr & _ "SMTP,発信者,宛先等は正しいですか?", vbYesNo) <> vbYes Then Exit Sub MailSmtpServer = "mail.***.co.jp" ' SMTPサーバ MailFrom = "***@***.co.jp" ' 発信者 MailTo = "***@***.co.jp" ' 宛先 MailSubject = fname ' 件名 MailBody = "" ' 本文 ' メール送信(CC,BCCはブランク) strMSG = SendMailByCDO(MailSmtpServer, MailFrom, MailTo, "", "", _ MailSubject, MailBody, MailAddFile) ' 文字コードを任意に指定する場合は以下のようにします。 ' strMSG = SendMailByCDO(MailSmtpServer, MailFrom, MailTo, "", "", _ MailSubject, MailBody, MailAddFile, cdoISO_2022_JP) If strMSG <> "OK" Then MsgBox Mid(strMSG, 3) End Sub しかし、このようなエラーがでました。’宛先等は正しいですか?’のメッセージのあとです。 ’2147024864プロセスはファイルにアクセスできません’。 ところで私がやりたいことは、(1)作成したエクセルの("C3").Textをファイル名にして、アクティブシートを(値のみ貼り付けして)保存し、(2)その作成されたファイルを添付してメールで送付する。ということです。 (2)のどこかで失敗しているものと思われますが、どこを直したらいいのかわかりません。 ここまで自分でできただけでも奇跡的なので、これ以上、どうしてよいか全くわからず。。 不足の情報があれば補足いたしますのでどうぞお願いいたします。

  • BASP21メール送信(SMTP-AUTH認証)ASP

    ご存知の方、宜しくお願いします。 あるプロバイダのメールサーバへBASP21を使用してメールの送信を 行いたいのですが、以下のエラーMSGが表示されて できません。 「エラー530 Sorry,Please use SMTP-AUTH instead」 outlook Expressだと問題なく送信できます。 outlook Expressの設定は ・送信メールサーバ このサーバは認証が必要・・・にチェック  受信メールサーバと同じ設定を使用する SMTPポートは「587」 BASPでは、 MailServer="xxxx.co.jp:587 mailfrom="user1:pass1" と設定しています。 詳しい方、宜しくお願いします。

専門家に質問してみよう