VBA代码、批量群发邮箱方法(2)

实现功能:批量群发邮箱

感觉这个比前面分享的那个方法发送邮箱要快点。

需要Excel模板订制请私聊

下面是代码分享

前期准备设置

前面都设置好了,就把下面代码写入进去

Sub cdosendmail()

Dim cdomail As Object

Dim strpath As String

Dim adata As Variant

Dim i As Long

Dim strurl As String

Dim strfrommail As String

Dim strpassword As String

strfrommail = Range('b2').Value

strfromname = Range('b3').Value

If strfrommail = '' Or strfromname = '' Then

MsgBox '未输入邮箱地址或名称'

Exit Sub

End If

strpassword = Range('b4').Value

If strpassword = '' Then

MsgBox '未输入smtp服务密码'

Exit Sub

End If

With Application

.ScreenUpdating = False

.DisplayAlerts = False

End With

Sheets('数据').Select

adata = Range('a1:c' & Cells(Rows.Count, 1).End(xlUp).Row)

'------数据装入数组aData

strpath = ThisWorkbook.Path & '\暑假快乐.jpg'

'------附件存放的路径+名称

'On Error Resume Next

For i = 2 To UBound(adata)

Set cdomail = CreateObject('cdo.message')

'------创建CDO对象

cdomail.from = strfrommail

'------发信人的邮箱

cdomail.to = adata(i, 1)

'------收信人的邮箱

cdomail.Subject = adata(i, 2)

'------邮件的主题

cdomail.htmlbody = adata(i, 3)

'------邮件的内容(Html格式)

cdomail.textbody = adata(i, 3)

'------邮件的内容(文本格式)

cdomail.addattachment strpath

'------邮件的附件

strurl = 'http://schemas.microsoft.com/cdo/configuration/'

'------微软服务器网址

With cdomail.configuration.Fields

.Item(strurl & 'smtpserver') = 'smtp.qq.com'

'------SMTP服务器地址

.Item(sturl & 'smtpserverport') = 25

'------SMTP服务器端口

.Item(strurl & 'sendusing') = 2

'------发送端口

.Item(strurl & 'smtpauthenticate') = 1

'------远程服务器验证

.Item(strurl & 'sendusername') = strfromname

'-------发送方邮箱名称

.Item(strurl & 'sendpassword') = strpassword

'-------发送方smtp密码

.Item(strurl & 'smtpconnectiontimeout') = 60

'-------设置连接超时(秒)

.Update

End With

cdomail.send

'-------发送

If Err.Number = 0 Then

adata(i, 3) = '发送成功'

Else

adata(i, 3) = '发送失败'

End If

Next

Range('d1').Resize(UBound(adata), 1) = Application.Index(adata, , 3)

Range('d1') = '发送状态'

Set cdomail = Nothing

With Application

.ScreenUpdating = True

.DisplayAlerts = True

End With

MsgBox '您好,发送任务完成'

End Sub

'如果要使用163邮箱发送邮件。修改发件人的邮箱地址、名称和对应的smtp服务密码

'将 .Item(strURL & 'smtpserver')='smtp.qq.com' 改为 .Item(strURL & 'smtpserver')='smtp.163.com'

'如果将一封邮件发送多人,不同收件人之间使用半角分号间隔即可。

'例:'42@qq.com;43@qq.com'

(0)

相关推荐