vbs定时发送邮件的方法与代码

2019-01-16 11:16:20王振洲

    '取得邮件地址 
    Dim i,total,jmail 
    i = 1 
    Dim BadMail '不接收的邮件列表 格式 '邮件地址','邮件地址' 
    BadMail = "'123@163.com','122@126.com'"  
    sql = "Select distinct b.stremail From userinfo a inner join userinfo_1 b "_ 
    &"on a.id = b.intuserid and b.stremail <> '' and (charindex('3',a.StruserLevel)>0 or charindex('4',a.StruserLevel)>0) "_ 
    &"and b.stremail not in ("&BadMail&") "_ 
    &"order by b.stremail" 
    Set rs = CreateObject("Adodb.Recordset") 
    rs.open sql,conn,1,1 
    total = rs.recordcount 
    If rs.eof Then  
        Wscript.Echo "没有用户!" 
        rs.close : Set rs = Nothing 
        Exit Sub 
    End If 

    '每二十个邮件地址发送一次 
    For i = 1 To total 
        If i Mod 20 = 1 Then 
            Set jmail = CreateObject("JMAIL.Message")   '建立发送邮件的对象 
            'jmail.silent = true    '屏蔽例外错误,返回FALSE跟TRUE两值 
             jmail.Logging = True    '记录日志 
            jmail.Charset = "GB2312"     '邮件的文字编码 
            jmail.ContentType = "text/html"    '邮件的格式为HTML格式或纯文本 
        End If 
        jmail.AddRecipient rs(0)  
        If i Mod 20 = 0 Or i = 665 Then 
            jmail.From = "info At 51tiao"   '发件人的E-MAIL地址 
            jmail.FromName = "上海跳蚤市场"   '发件人的名称 
            jmail.MailServerUserName = "info"     '登录邮件服务器的用户名 (您的邮件地址) 
            jmail.MailServerPassword = "123123"     '登录邮件服务器的密码 (您的邮件密码) 
            jmail.Subject = "上海跳蚤市场今日推荐 "&Year(Date())&"年"&Month(Date())&"月"&Day(Date())&"日"    '邮件的标题  
            jmail.Body = msg      '邮件的内容 
            jmail.Priority = 3      '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值 
            jmail.Send("mail.51tiao.com")     '执行邮件发送(通过邮件服务器地址) 
            jmail.Close()    
            set jmail = Nothing 
        End If 
    rs.movenext 
    Next 
    rs.close : Set rs = Nothing