以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【分享】根据附件地址文件夹的文件数量自动判断,并将附件逐一添加发送到指定邮件地址,然后删除该文件夹下的文件,便于后续检测到新增文件后,再次触发邮件发送。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164257)

--  作者:cnsjroom
--  发布时间:2021/5/2 10:31:00
--  【分享】根据附件地址文件夹的文件数量自动判断,并将附件逐一添加发送到指定邮件地址,然后删除该文件夹下的文件,便于后续检测到新增文件后,再次触发邮件发送。
If FileSys.GetFiles(ProjectPath & "Attachments\\附件地址").count> 0 Then
    output.Show("即将推送邮件")
    Dim client As New System.Net.Mail.SmtpClient()
    client.Host = "smtp.163.com"  \'//smtp服务器地址
    client.Credentials = New System.Net.NetworkCredential("cn", "EV")    \'//发件人邮箱的用户和密码(授权码,并不是发件邮箱的密码)
    client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network  \'//将smtp的出站方式设为 Network
    Dim message As New System.Net.Mail.MailMessage
    message.From = new System.Net.Mail.MailAddress("cn@163.com")
    message.To.Add("15@qq.com")\'主送,多个邮件地址之间用半角逗号分开
    message.Subject = "这是个测试邮件!"   \'//邮件标题
    message.IsBodyHtml = True  \'; //邮件正文是否是HTML格式
    Dim attach1 As new System.Net.Mail.Attachment( ProjectPath & "images\\saoyisao.png", System.Net.Mime.MediaTypeNames.Image.Jpeg)  \'这里设置将图片显示在邮件中
    message.Attachments.Add(attach1)
    Dim pic1 As String = attach1.ContentId \'设置ContentId
    \'\'对于html邮件,可以在正常邮件中写好内容,在查看html代码,复制到这里
    Dim sb As New StringBuilder
    sb.Append("Hello World<br>")
    sb.Append("<img src=""cid:"& pic1 &"""/><br>")  \'将前面增加图片附件放入到邮件中直接显示,注意如果html代码中存在 " 请改成 ""
    sb.Append("Hello China")
    Dim content As String = sb.ToString \'设置正文内容\'
    message.Body = content   \'//邮件正文
    For Each File As String In FileSys.GetFiles(ProjectPath & "\\Attachments\\附件地址\\")
        Output.Show(File)
        \'For q As Integer = 0 To 1   \'多个附件添加
        Dim attachment As new  System.Net.Mail.Attachment(File,System.Net.Mime.MediaTypeNames.Application.Octet)  \'//单个添加附件,第二个参数表示附件的文件类型,可以不用指定
        attachment.name = FileSys.GetName(File)
        attachment.nameEncoding =  System.Text.Encoding.UTF8  \'//设置附件显示名称的编码
        message.Attachments.Add(attachment)
        \'Next
    Next
   
    \'同步发送邮件
    Try
        client.Send(message)  \'//发送邮件,如果不返回异常则发送成功
        msgbox("发送成功")
    Catch ex As Exception
        msgbox("发送失败:" & ex.message)
    finally
        message.Dispose()
    End Try
    For Each File As String In FileSys.GetFiles(ProjectPath & "\\Attachments\\附件地址\\")
        FileSys.DeleteFile(File,2,2)
    Next    
Else
    output.Show("暂无附件可推送")
End If
[此贴子已经被作者于2021/5/2 12:44:03编辑过]