0
Я использую Excel для отправки ежемесячных отчетов нашим брокерам. Есть ли способ добавить столбец, чтобы показать, действительно ли отправлено каждое отдельное письмо.Добавление статуса отправки электронной почты в Excel
Некоторые из строк могут иметь недействительный адрес электронной почты и единственный способ узнать, отправлены ли все из них, пройдя через мою отправленную папку.
Sub SendEmails()
Dim answer As Variant
answer = MsgBox("You are about to send the statements. Proceed?", vbYesNo + vbQuestion, "Alert")
Select Case answer
Case vbYes
MsgBox "Process may take a while to finish. Do not attempt to close the worksheet or Outlook.", vbInformation, "Alert"
Dim OutApp As Object
Dim OutMail As Object
Dim sh As Worksheet
Dim cell As Range
Dim FileCell As Range
Dim rng As Range
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set sh = Sheets("Listing")
Set OutApp = CreateObject("Outlook.Application")
For Each cell In sh.Columns("D").Cells.SpecialCells(xlCellTypeConstants)
Set rng = sh.Cells(cell.Row, 1).Range("A1:B1")
If cell.Value Like "?*@?*.?*" And _
Application.WorksheetFunction.CountA(rng) > 0 Then
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = cell.Value
.Subject = "Statement of Account - " & cell.Offset(0, 2).Value
.Body = cell.Offset(0, 1).Value
For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
If Trim(FileCell) <> "" Then
If Dir(FileCell.Value) <> "" Then
.Attachments.Add FileCell.Value
End If
End If
Next FileCell
.Send 'Or use .Display
End With
Set OutMail = Nothing
End If
Next cell
Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Case vbNo
GoTo Quit:
End Select
Quit:
End Sub
Вы могли бы хотеть иметь в виду, что внешний вид не в состоянии сказать, если электронная почта не была на самом деле доставлено, если вам этот параметр включен, и получатель охотно отправляет вам «полученное» уведомление (которое требует, чтобы программа электронной почты получателя поддерживала эту опцию). Outlook также не сможет определить, недействителен ли адрес электронной почты. Outlook по-прежнему будет пытаться отправить электронное письмо, а через несколько минут вы можете получить автоматический ответ от целевого домена, в котором адресат не указан или недействителен. – Ralph
Спасибо. Мне действительно нужно указание, что электронные письма были отправлены с моей стороны; Я действительно не беспокоюсь, что они доставлены или нет. И поскольку я отправляю электронные письма с помощью vba excel, он будет просматривать весь список и отправлять их, поэтому я не смогу сказать, пропускает ли он одну строку из-за пустой ячейки электронной почты. –