Office 2013 で Outlook メールの下書きを作成するために使用した Excel の既存の VBA コード スニペットがあります。次のコードを検討してください。これは正常に機能し、作成後に Outlook 内でメールを手動で送信できました。
Dim objOLOutlook As New Outlook.Application
Dim objOLMail As Outlook.MailItem
Set objOLMail = objOLOutlook.CreateItem(olMailItem)
objOLMail.SentOnBehalfOfName = WsMtrx.Cells(2, 2).Value
objOLMail.To = .Cells(i, 2).Value
objOLMail.CC = .Cells(i, 3).Value
objOLMail.Sensitivity = WsMtrx.Cells(3, 2).Value
objOLMail.Importance = WsMtrx.Cells(4, 2).Value
objOLMail.Subject = dicHtmlText.Item(.Cells(i, 6).Value & "Subject")
objOLMail.BodyFormat = olFormatPlain
objOLMail.HTMLBody = getHtmlText(.Cells(i, 6).Value, .Cells(i, 5).Value, .Cells(i, 4).Value, .Cells(i, 10).Value, i, arrSignatur)
objOLMail.Save
Office 365 (クラウド内の Exchange サーバー) に切り替えましたが、同じコードを使用してメールを作成しますが、メールを送信するとエラーが発生します。
Outlook のプロパティで、「電子メール アドレス」フィールドではなく、「表示名」フィールドにのみ電子メール アドレスが表示されることに気付きました。
手動で作成されたメールが適切に機能している場合、「表示名」フィールドと「電子メール アドレス」フィールドに電子メール アドレスが表示され、「電子メール タイプ」フィールドに「SMTP」が表示されます。
オートコンプリートキャッシュを無駄にクリアするなど、すでにいくつかのことを試しました。電子メール アドレスを正しく設定するために Excel/VBA 内でできることはありますか? それとも、修正する必要があるのはサーバー側の問題/設定ですか?