Excel Email Macro Size Limits?

cynthixie

New Member
Joined
Aug 17, 2022
Messages
12
Office Version
  1. 2019
Platform
  1. Windows
I have a macro to send out batches of emails to clients, using personalized info for each client. It's been working great, but it's just been brought to my attention that the macro doesn't send or display emails after about the 20th draft that populates in Outlook when you run the macro.

So any advice or insight on why I can't send more than 20 emails at once when the macro should run through the last row of information, please let me know.

Sub Mail()

Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(oMailItem)
Dim strMailBody As String
Dim Cel As Range

For Each Cel In Sheets("MS_Data").Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

If Cel.Offset(0, 8).Value = "y" Then ' "Y" or "y" - Case sensitive

Set objEmail = objOutlook.CreateItem(oMailItem)

StrMailSubject = ThisWorkbook.Sheets("Mail_Details").Range("A2").Text
strMailBody = "<BODY style='font-size:11pt;font-family:Calibri(Body)'>" & ThisWorkbook.Sheets("Mail_Details").Range("B2").Text & "</BODY>"
strMailBody = Replace(strMailBody, Chr(10), "<br>")

strFolder = "C:\Users\x\OneDrive - x\Desktop\AL TEST"

strISO = Cel.Offset(0, 1).Value
strSalutation = Cel.Offset(0, 2).Value
strEmail = Cel.Offset(0, 3).Value
strCC = Cel.Offset(0, 4).Value
strfile = Cel.Offset(0, 5).Value
strfile2 = Cel.Offset(0, 6).Value
strfile3 = Cel.Offset(0, 7).Value
'
StrMailSubject = Replace(StrMailSubject, "<ISO>", strISO)
strMailBody = Replace(strMailBody, "<Salutation>", strSalutation)


With objEmail
.To = CStr(strEmail)
.CC = CStr(strCC)
.Subject = StrMailSubject
.BodyFormat = olFormatHTML
.Display
If strfile <> "" Then
.Attachments.Add strFolder & "\" & strfile
End If
If strfile2 <> "" Then
.Attachments.Add strFolder & "\" & strfile2
End If
If strfile3 <> "" Then
.Attachments.Add strFolder & "\" & strfile3
End If
.HTMLBody = strMailBody & .HTMLBody
End With

End If
Next Cel

MsgBox "All the mails have been displayed successfully"

End Sub
 

Excel Facts

Control Word Wrap
Press Alt+Enter to move to a new row in a cell. Lets you control where the words wrap.
Hello again cynthixie,:)
you can try to insert a pause between each mail
VBA Code:
 End If
    
 Application.Wait (Now + TimeValue("0:00:02")) ' Pause the code for 2 seconds

Next Cel
When posting code please insert it between tags
 
Upvote 0

Forum statistics

Threads
1,214,911
Messages
6,122,194
Members
449,072
Latest member
DW Draft

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top