В следующем коде предполагается, что ObjMail - это сообщение, которое вы создаете.
' Delete any existing reply recipients
Do While ObjMail.ReplyRecipients.Count > 0
ObjMail.ReplyRecipients.Remove 1
Loop
' Add the new recipient
ObjMail.ReplyRecipients.Add "[email protected]"
' Send blind copy to other staff members
ObjMail.BCC = "Staff1.isp.com, Staff2.isp.com, Staff3.isp.com"
В сообщении, отправленном сотрудникам, будет сказано, что оно пришло от того, кто отправил сообщения о дне рождения. Но если кто-нибудь ответит, получателем будет «[email protected]».
Я отправил слепые копии другим сотрудникам. Это не потому, что штатное расписание является секретным, а потому что:
- Если у вас есть 500 сотрудников, у которых в среднем 20 символов на адрес, использование CC добавит 10 000 символов к каждому из 500 сообщений.
- Это не позволяет сотрудникам использовать «Ответить всем» при добавлении своих наилучших пожеланий, сохраняя еще 500 * 500 сообщений.
- Используйте ObjMail.CC, если вы предпочитаете заполнить сервер вашей компании.
Меня беспокоит размер сообщений, потому что много лет назад я работал в английской NHS, у которой были тысячи сотрудников, разбросанных по всей стране. Кто-то в небольшой больнице попытался рекламировать свой велосипед для продажи в больнице, но сумел прорекламировать это каждому сотруднику в стране. Я работал из дома по медленной телефонной линии; загрузка этого сообщения заняла полчаса.
Новый раздел в ответ на запрос полного кода процедуры тестирования
Ниже я привожу полную процедуру, которую я использовал для проверки своего ответа. Он был адаптирован из рутины, которую я написал для другого ответа. Он создает тело HTML, которое может вам не понадобиться, но показывает, как это сделать. Я заменил настоящие адреса электронной почты, которые я использовал для своих тестов, фиктивными адресами; в остальном он без изменений.
Sub ReplyToRecipientWithBlindCopies()
' Create a mail item with a simple message.
' Send the mail item to "[email protected]" and make them
' the recipient of any replies.
' Send blind copies to all other recipients.
' Author: Tony Dallimore, York, England
Dim OlApp As Outlook.Application
Dim ObjMail As Outlook.MailItem
Dim MessageBody As String
' This creates a blue message on a grey background. This is a
' demonstration of what is possible; not a recommendation!
MessageBody = "<table width=""100%"" style=""Color:#0000FF;" & _
" background-color:#F0F0F0;""><tr><td align= ""center"">" & _
"Happy birthday from all your colleagues!</td></tr></table>"
Set OlApp = Outlook.Application
Set ObjMail = OlApp.CreateItem(olMailItem)
With ObjMail
.BodyFormat = olFormatHTML
.Subject = "Happy birthday!"
.HTMLBody = HeadAndBodyToHtmlDoc("", MessageBody)
' Remove any existing recipients
Do While .Recipients.Count > 0
.Recipients.Remove 1
Loop
' Remove any existing reply recipients
Do While .ReplyRecipients.Count > 0
.ReplyRecipients.Remove 1
Loop
' Add birthday person to Recipient and ReplyRecipient lists
.Recipients.Add "[email protected]"
.ReplyRecipients.Add "[email protected]"
' You will need to replace this with a loop
' to add all your staff members.
.BCC = "[email protected], [email protected], [email protected]"
' Display the prepared messages ready for any final changes.
' The user must send it.
.Display
End With
End Sub
Function HeadAndBodyToHtmlDoc(Head As String, Body As String) As String
' Wrap Head and Body created by caller in a standard envelope.
' Author: Tony Dallimore, York, England
HeadAndBodyToHtmlDoc = _
"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Frameset//EN""" & _
" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"">" & _
vbCr & vbLf & "<html xmlns=""http://www.w3.org/1999/xhtml""" & _
" xml:lang=""en"" lang=""en"">" & vbCr & vbLf & "<head><meta " & _
"http-equiv=""Content-Type"" content=""text/html; " & _
"charset=utf-8"" />" & vbCr & vbLf & Head & vbCr & vbLf & _
"</head><body>" & vbCr & vbLf & Body & "</body></html>"
End Function
person
Tony Dallimore
schedule
13.02.2012