Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2013)
Accessでのメール送信
投稿日時: 21/04/19 16:51:30
投稿者: yamasho

お世話になります。
 
Accessでメール送信をしています。
CDO.Messageを利用しています。
 
現在、問題なく送れているのですが、
相手にメールが届くとメールアドレスが表示されてしまいます。
 
メールアドレスではなく、
表示名を指定して届くようにしたいのですが、
可能でしょうか?
 
sato@xxxx.co.jp
 
ではなく、
 
佐藤一郎
 
と表示させたいです。

回答
投稿日時: 21/04/20 09:04:10
投稿者: eden

佐藤一郎 <sato@xxxx.co.jp>
と指定する。

投稿日時: 21/04/20 14:02:47
投稿者: yamasho

お世話になります。
 
そのようにするとエラーメッセージが出てしまいます。
 
-2147220975:メッセージをSTMPサーバーに送信できませんでした。
転送エラーコードは0x80040217です。
サーバーからの応答は次のとおりです。
not available
 
よろしくお願い致します。

回答
投稿日時: 21/04/20 16:15:26
投稿者: eden

"佐藤一郎" <sato@xxxx.co.jp>
でした。ダブルコーテーションを付けてください。

投稿日時: 21/04/20 16:35:59
投稿者: yamasho

お世話になります。
 
以下のすべてを確認しましたが、どれもダメでした。
 
strFrom = "'佐藤一郎'<sato@xxxx.co.jp>"
strFrom = """佐藤一郎""" & "<sato@xxxx.co.jp>"
strFrom = "'佐藤一郎'" & "<sato@xxxx.co.jp>"
 
 
SMTPサーバーのポートを465にしているのですが、
そこが悪いのでしょうか?
 
 
With objCDO.Configuration.Fields
        'メール送信方法(外部SMTP指定:2 = cdoSendUsingPort)
        .Item(cdoSendUsingMethod) = 2
        'SMTPサーバーのアドレス
        .Item(cdoSMTPServer) = strServer
        'SMTPサーバーのポート
        .Item(cdoSMTPServerPort) = 465
        '差出人ユーザー名
        .Item(cdoSendUserName) = strFrom
        '認証コード
        .Item(cdoSendPassword) = strPass
        'SSL認証要
        .Item(cdoSMTPUseSSL) = True
        '認証方式(1)
        .Item(cdoSMTPAuthenticate) = cdoBasic
        'タイムアウト
        .Item(cdoSMTPConnectionTimeout) = 60
        .Update
End With
 
 

回答
投稿日時: 21/04/20 17:38:08
投稿者: eden

Gmailですが、こちらではうまくいっていますので、わかりません。
<の前にスペースを入れてみたらどうでしょう。

回答
投稿日時: 21/04/21 09:30:33
投稿者: eden

コードを見てませんでした。
.Item(cdoSendUserName) はサーバーの認証なので違います。
objCDO.From で指定してください。

投稿日時: 21/04/21 21:13:37
投稿者: yamasho

お世話になります。
 
無事できました。
ありがとうございました。