Как ввести несколько адресов электронной почты в свойстве Bcc объекта MailItem? - PullRequest
1 голос
/ 16 апреля 2019

Мой код VBA отправляет автоматическую электронную почту.Как заполнить более одного адреса электронной почты?

Пользователь создает новое письмо и заполняет:
Кому: один адрес электронной почты
Скрытая копия: адрес электронной почты2, адрес электронной почты3, адрес электронной почты4, ...

Как Outlook разделяет каждый адрес электронной почты в свойстве Bcc для отправки в моем примере 4 писем вместо одного.

Dim strWho As String
Dim strSubject As String
Dim objNewMail As Outlook.MailItem

Set objNewMail = Application.CreateItem(olMailItem)

strWho = objMail.To
strSubject = objMail.Subject 

With objNewMail
    .To = strWho
    .BCC = "mail2,mail3,mail4,mail5"
    .Subject = strSubject
    .Display
    .Send
End With

1 Ответ

1 голос
/ 16 апреля 2019

Вы должны использовать точку с запятой ; для разделения каждого почтового адреса в следующем формате:

"person1@email.com;person2@email.com"

Если они уже введены в почтовый объект, вы можете использовать этот код:

Dim strWho As String
Dim strSubject As String
Dim objNewMail As Outlook.MailItem
Dim bccMails As String

Set objNewMail = Application.CreateItem(olMailItem)

strWho = objMail.To
strSubject = objMail.Subject 
bccMails = objMail.BCC    

With objNewMail
    .To = strWho
    .BCC = bccMails
    .Subject = strSubject
    .Display
    .Send
End With

В противном случае вы можете один раз запросить у пользователя почтовые адреса с InputBox, а затем использовать это значение для каждой почты:

Dim bccMails As String
bccMails = InputBox("Please insert .bcc email addresses, separated by semicolons", "Email Address", "person1@email.com;person2@email.com")

Надеюсь, это поможет в качестве отправной точки.

...