VBA可以在关闭Excel时自动把Excel文件或内容发送到指定邮箱吗?

2020-09-30 科技 125阅读

发邮件,自己改下相应内容 ,有批注:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim cm As New CDO.Message 'CDO.message是一个发送邮件的对象
'Set cm = CreateObject("CDO.Message") '创建对象 '引用路径:C:\Windows\system32\cdosys.dll'这个是要引用的,如果不引用,可以用这句也行
cm.From = "30687724@qq.com" '设置发信人的邮箱"
cm.To = "suxiong@eshinetech.com" '设置收信人的邮箱
cm.Subject = "主题:邮件发送试验" '设定邮件的主题
'cm.TextBody =  '邮件正文,使用文本格式发送邮件,如果太复杂了就不行了,要用下面这种
cm.HtmlBody = "邮件发送试验^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" '使用html格式发送邮件
cm.AddAttachment "F:\学习资料\vba\a.xlsx" '发的附件名与地址
stUl = "http://schemas.microsoft.com/cdo/configuration/" '微软服务器网址,固定的,不用改的
With cm.Configuration.Fields
    .Item(stUl & "smtpserver") = "smtp.qq.com"         'SMTP服务器地址
    .Item(stUl & "smtpserverport") = 25                  'SMTP服务器端口
    .Item(stUl & "sendusing") = 2                        '发送端口
    .Item(stUl & "smtpauthenticate") = 1      '需要提供用户名和密码,0是不提供           '
    .Item(stUl & "sendusername") = "30687724"                '发送方邮箱名称,不用输入@后面的东西
    .Item(stUl & "sendpassword") = "s30687724"                  '发送方邮箱密码
    .Update
End With
cm.Send '最后当然是执行发送了
Set cm = Nothing
'发送成功后即时释放对象
End Sub
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com