< | >

excel からbasp21 でメール送信
  • (2020-07-01 17:27:49)

「<>」をつけて「<メアド>」の形式にする


ありがたいことに、まだbasp21 にお世話になっている。

今日はexcelの氏名リストのメアドから、basp21によってメールを送信するVBAを書いた、送信すると

「501 could not parse recipient to ○@○.○」

というエラーで失敗する。

VBAのコードの問題でなく、SMTPサーバに叱られている雰囲気。

検索すると、なんと、自分のブログが出てきた。

もう10年も前の話か、オレは10年進歩していない。

この記事は強制的にmailサーバを移行させられた際、仕様が変わってメールの送信トラブルを体験したようだが、覚えていない・・・

「メルアドだけの場合、以前は山括弧不要だったが、
  501 could not parse your mail from command というエラーが」


という内容。今回のトラブルとはメッセージが少し違うが似ている。

試しにメアドにカッコを付けたら動いた。

strAdr = "<" & ○@○.○ & ">"


あ、そう?

そういう仕様になっているようだ。


CDOによるメール送信


basp21は64bit Windows で使えない (そんなことはないのだが) ので、Windows に標準搭載させているコンポーネント「CDO」を使うことが、いまは多いらしい。

私は使ったことがないので、どれくらいむずかしいかわからない。

サンプルコードを書いてくれている人がいるので、消える前にコピーさせてもらう。

次回はこれで試してみたい。

サンプルのとおりに書けば、かなり簡単に送信できそうな予感。

あれ、エラー時の処理はどうするのかな...

CDO.Messageによるメール送信

-------------------------------
サンプル1
-------------------------------
Set objMail = CreateObject("CDO.Message")

objMail.From = "username@xxx.yy.zz"
objMail.To = "username@xxx.yy.zz"
objMail.Subject = "メール送信テスト"
objMail.TextBody = "CDO.Messageによるメール送信テスト"

objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mailhost"
objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMail.Configuration.Fields.Update

objMail.Send

Set objMail = Nothing


-------------------------------
サンプル2
-------------------------------
Set objMail = CreateObject("CDO.Message")

objMail.From = "username@gmail.com"
objMail.To = "username@gmail.com"
objMail.Subject = "SMTP認証、SSL通信によるメール送信テスト"
objMail.TextBody = "CDO.Messageを利用したSMTP認証、SSL通信によるメール送信テスト"

strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/"
With objMail.Configuration.Fields
.Item(strConfigurationField & "sendusing") = 2
.Item(strConfigurationField & "smtpserver") = "smtp.googlemail.com"
.Item(strConfigurationField & "smtpserverport") = 465
.Item(strConfigurationField & "smtpusessl") = True
.Item(strConfigurationField & "smtpauthenticate") = 1
.Item(strConfigurationField & "sendusername") = "username@gmail.com"
.Item(strConfigurationField & "sendpassword") = "password"
.Item(strConfigurationField & "smtpconnectiontimeout") = 60
.Update
end With

objMail.Send

Set objMail = Nothing



<< スマホ新調、セットアップとデータの移行< | >PDFファイルに社印 (jpg画像) を埋込み >>
search
layout
admin

[▲page top]