VBでメールを送る時のSMTP認証対応が分かりません
VBで処理をした最後にメールを送る処理を
BSMTP.DLLを使ってやっていました
近頃 メールサーバーの仕様が変わり SMTP認証が
必要という知らせがありました
そうすると 突然メールが送れなくなり
(実はメールが送れなくなってメールサーバーの仕様が変わったことが分かった)
あわてて色々調べたら 認証の仕方が書いて有ったので
色々試したのですが うまく送れません
コードは以下のようにしています
宣言部分
Private Declare Function SendMail Lib "bsmtp" _
(szServer As String, szTo As String, szFrom As String, _
szSubject As String, szBody As String, szFile As String) As String
コード
Dim ret As String
Dim szServer As String, szTo As String, szFrom As String
Dim szSubject As String, szBody As String, szFile As String
Screen.MousePointer = vbHourglass
szServer = "abc.com" 'SMTPサーバー(ポート番号はしていません なので25)
szTo = b@efg.com '宛先 一件のみ
★問題はこの下の行かと思います
szFrom = "a:password" & vbTab & "LOGIN"
szSubject = ' 件名
以下本文等・・・・・
szFile = "" '添付ファイル無し
ret = SendMail(szServer, szTo, szFrom, szSubject, szBody, szFile)
If Len(ret) <> 0 Then
Screen.MousePointer = vbDefault
MsgBox "処理エラーが発生しました。" & "送信不能" & ret
Exit Sub
Else
Screen.MousePointer = vbDefault
MsgBox "メール送信終了しました。", vbInformation, "送信完了"
End If
★の所でID パスワードはきちんと合ってます
でもこれで実行すると パスワードが違うと返ってきます
また 認証方式も3つとも試しましたが 同じ結果です
bsmtpも最新の物に変えてみました、でもダメでした
そもそも書き方がいけないのかサーバーの仕様にあっていないのかも
分かりません
szFrom = "a:password" & vbTab & "LOGIN"
では a@abc.com から届いたよと言う事が相手に分からないし
書いてみようと思い
szFrom = "a@abc.com" & vbTab & "a:password" & vbTab & "LOGIN"
szFrom = "a@abc.com:password" & vbTab & "LOGIN"
など書いてみましたが ダメでした(認証方式も変えてみた)
ちなみに メーラー(アウトルックエキスプレス)では
ID a とパスワードで、きちんと認証して送信できるので
サーバー自体は問題ないだろうから
記述がおかしいのだろうと思っています
どなたかこのあたりを分かりやすく教えていただければ
助かります。
日常業務で使っていたので 大変困ってます
よろしくお願いします。
お礼
ありがとうございます。