Access开发邮件发送功能

Hi,大家好!

暑假开始了,不知道各位都有什么精彩的暑期安排呢?或许可以抽出一些时间来学习 Access!嘿嘿!

我们已经讲了好几篇的outlook的文章了,每次的应用都是围绕着outlook的来实现一些邮件的操作,那今天我们就给大家分享邮件发送功能,废话不多说,让我们开干!

再次提醒大家,这次干货满满,开始前先给个一键三连吧!

01、创建窗体

这次我们创建的窗体控件比较多,具体如下:

控件控件名称
文本框(收件人)txtTo
文本框(抄送)txtCC
文本框(密抄)txtBCC
文件框(标题)txtSubject
文本框(附件)txtPath
文本框(内容)txtBody
按钮(发送)btnSend
按钮(浏览)btnBrowse

1.png

02、添加代码

这里代码要分好几块,大家依次复制添加

添加一下枚举类型

Option Explicit



' 邮件格式常量枚举,用于指定邮件正文格式

Public Enum EmailFormatEnum

    dpEmailFormatText = 0   ' 纯文本格式

    dpEmailFormatHTML = 1   ' HTML 网页格式

    dpEmailFormatURL = 2    ' 超链接格式(邮件内容是一个网页地址,自动获取并发送网页内容)

End Enum

添加发送邮件函数,注意要替换你自己的配置,这里代码我都写死了,大家也可以自己做一个配置功能!

' 发送邮件函数:通过 CDO 对象配置 SMTP 参数并发送邮件

Public Function SendEmail(ToAddress As String, _

                          Subject As String, _

                          Body As String, _

                          Optional Attachment As String, _

                          Optional CC As String, _

                          Optional BCC As String, _

                          Optional BodyFormat As EmailFormatEnum = dpEmailFormatText _

                          ) As Boolean

    On Error GoTo ErrorHandler

   

    Dim strNameSpace As String

    Dim objMessage As Object ' CDO.Message

    Dim cdoConfig As Object

    Dim SendUserName As String

   

    SendEmail = False

    SendUserName = "你的邮箱地址" ' 发件人邮箱

   

    ' 创建 CDO 对象以进行邮件发送

    Set objMessage = CreateObject("CDO.Message")

    Set cdoConfig = CreateObject("CDO.Configuration")

   

    ' 设置 CDO 配置项,如 SMTP 服务器、端口、凭证等

    strNameSpace = "http://schemas.microsoft.com/cdo/configuration/"

    With cdoConfig.fields

        .Item(strNameSpace & "smtpserver") = "你的发送服务器"

        .Item(strNameSpace & "smtpserverport") = 25

        .Item(strNameSpace & "sendusing") = 2

        .Item(strNameSpace & "smtpauthenticate") = 1

        .Item(strNameSpace & "smtpusessl") = False

        .Item(strNameSpace & "sendusername") = SendUserName

        .Item(strNameSpace & "sendpassword") = "你的密码"

        .Update

    End With

   

    ' 根据不同正文格式设置邮件内容,并发送

    With objMessage

        Set .Configuration = cdoConfig

        .From = SendUserName

        .To = ToAddress

        .CC = CC

        .BCC = BCC

        .Subject = Subject

        .BodyPart.Charset = "UTF-8"

       

        Select Case BodyFormat

            Case dpEmailFormatHTML

                .HTMLBody = Body

            Case dpEmailFormatURL

                .CreateMHTMLBody Body

            Case Else

                .TextBody = Body

        End Select

       

        ' 若有附件,则添加附件

        .AddAttachment Me.txtPath

       

        .fields.Update

        .Send

    End With

   

    SendEmail = True

   

ExitHere:

    ' 释放对象

    Set cdoConfig = Nothing

    Set objMessage = Nothing

    Exit Function

   

ErrorHandler:

    ' 错误处理,显示错误信息

    MsgBox "#" & Err.Number & " SendEmail()" & vbCrLf & Err.Description, vbCritical

    Resume ExitHere

End Function

发送按钮的单击事件


' 发送按钮:调用 SendEmail 函数发送邮件,并根据返回值弹窗提示

Private Sub btnSend_Click()

    If SendEmail(Me.txtTo, Me.txtSubject, Nz(Me.txtPath, ""), Nz(Me.txtCC, ""), Nz(Me.txtBCC, "")) Then

        MsgBox "发送成功", vbInformation

    Else

        MsgBox "失败", vbInformation

    End If

End Sub

浏览按钮的单击事件

' 浏览按钮:打开文件选择对话框,获取单个文件路径并赋值给文本框

Private Sub btnBrowse_Click()

    With Application.FileDialog(msoFileDialogFilePicker)

        .Filters.Clear

        .AllowMultiSelect = False

        .InitialFileName = ""

        If Not .Show Then

            Exit Sub

        End If

        Me.txtPath = .SelectedItems(1)

    End With

End Sub

03、运行测试

代码添加好了,最后,就是运行测试了,这里我还是给大家截个图,亲测,代码肯定是可以的,大家自己在测试时,一定要仔细,还有注意了,部分邮箱(如QQ邮箱)要求必须使用SSI加密。端口也是需要修改的,我这里输入的是25(默认)。

222.png

好了,今天的分享就到这里了,这么好用的功能,大家快去试一下吧,原创文章不容易,大家给个三连吧!谢谢大家了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Access开发易登软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值