Как отправлять письма с динамическим списком рассылки

#excel #vba #macos #email

#excel #vba #macos #Адрес электронной почты

Вопрос:

Я пытаюсь отправлять почту на несколько идентификаторов электронной почты каждую неделю. Количество идентификаторов электронной почты меняется каждую неделю (динамический набор данных).

Каждое письмо должно отправляться трем разным получателям в соответствии с приведенной ниже таблицей. введите описание изображения здесь

Я попробовал макрос для подсчета последней строки. Если письма нужно отправлять на 30 идентификаторов электронной почты, то только на первые 29 идентификаторов электронной почты.

 Sub (mail)

    Dim i As Long
    Dim mailid1, mailid2, mailid3 As String
    Dim Rng As Range

    Set Rng = Range("A1", Range("A1").End(xlDown))

    Set outapp = CreateObject("Outlook.Application")

    Counter = Rng.Count

    For i = 2 To Counter ' due to headers i taken as 2 

        mailid1= Cells(i, 1).Value
        mailid2= Cells(i, 2).Value
        mailid3= Cells(i, 3).Value
      
        With outmail

            outmail.SentOnBehalfOfName = "abx@abc.com"
            .To = mailid1 amp; ";" amp; mailid2
            .CC = mailid3
            .Importance = 2

            .Subject = mail subject

            .HTMLBody = Mail text
        
            .Attachments.Add ("File1")
            .Attachments.Add ("File2")
        
            .send
                    
        End With
        On Error GoTo 0

        'Increment i for looping, wait at least 10 seconds before sending next email
        Application.Wait (Now   TimeValue("0:00:03"))

    Next i

    Loop

    MsgBox "Email Sucessfull for ALL"
     
End Sub
 

Комментарии:

1. У Loop этого нет Do открывающего его, и имя подпрограммы не должно быть в скобках. В любом случае, предполагая, что специфичный для почты код работает (а я не думаю, что mail subject это и Mail text сделало бы это возможным), я бы посоветовал проверить ваши данные, потому что код должен охватывать весь список. Все ли адреса электронной почты действительны?

2. спасибо, по ошибке я упомянул здесь цикл.. я только что привел примеры почтовых идентификаторов, чтобы вы поняли это требование. спасибо, теперь все улажено … Я получил ответ сам..

Ответ №1:

Я нашел ответ, ответ сам по себе. я внес нижеприведенные изменения..

   Set rng = Range("B1", Range("B1").End(xlDown))
 Counter = rng.Count
  For i = 2 To Counter
 

и добавьте еще одну кодировку

   If RequestorEmail <> blank Then 'header name of Row B
        
  With outmail