vbs自动发送邮件_遇到的问题

本文介绍了如何在VBS中利用DateAdd函数获取特定日期,并展示了自定义日期格式的方法。同时,针对VBS发送邮件时可能出现的中文乱码和批处理运行时报错问题,提供了改为ASCII编码格式的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.当前日期及格式自定义

1.1 获取当前日期方法:

复制代码代码如下:

Currentdate1=now()
msgbox Currentdate1

1.2 当前日期格式自定义:

复制代码代码如下:

Currentdate2=year(Now)&"-"&Month(Now)&"-"&day(Now)
msgbox Currentdate2

2. 获取某一天的日期及格式自定义

2.1 DateAdd 函数介绍

返回已添加指定时间间隔的日期。

DateAdd(interval, number, date)

参数

interval

必选项。字符串表达式,表示要添加的时间间隔,可以是年、月、日。有关数值,请参阅“设置”部分。

number

必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。

date

必选项。Variant 或要添加 interval 的表示日期的文字。

设置

interval 参数可以有以下值:

设置 描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
n 分钟
s

2.2 例子

2.2.1 获取前一天的日期

yesterday = DateAdd("d",-1,now)

2.2.2 格式自定义
yesterday_format = DatePart("yyyy",my_date1) & "-" & Right("0" & DatePart("m",my_date1), 2) & "-" & Right("0" & DatePart("d",my_date1),2)

作用:不考虑系统设定的时间格式(默认为YYYY/M/D),修改输出时间格式为YYYY-MM-DD,并将结果赋予变量my_date2

3. 邮件

详细注释版: 

复制代码代码如下:

'Date: 2010/6/18 
'Author: Demon 
'QQ: 380401911 
'E-mail: still.demon@gmail.com 
'Website: http://demon.tw 

Const Email_From = "ddd@163.com" '发件人邮箱 
Const Password = "password" '发件人邮箱密码 
Const Email_To = "380401911@qq.com" '收件人邮箱 

Set CDO = CreateObject("CDO.Message") '创建CDO.Message对象 
CDO.Subject = "From Demon" '邮件主题 
CDO.From = Email_From '发件人地址 
CDO.To = Email_To '收件人地址 
CDO.TextBody = "Hello world!" '邮件正文 
cdo.AddAttachment "C:\hello.txt" '邮件附件文件路径,切记这里不需要“=”
Const schema = "http://schemas.microsoft.com/cdo/configuration/" '规定必须是这个,我也不知道为什么 

With CDO.Configuration.Fields '用with关键字减少代码输入 
.Item(schema & "sendusing") = 2 '使用网络上的SMTP服务器而不是本地的SMTP服务器 
.Item(schema & "smtpserver") = "smtp.gmail.com" 'SMTP服务器地址,可在邮箱设置里查看
.Item(schema & "smtpauthenticate") = 1 '服务器认证方式 
.Item(schema & "sendusername") = Email_From '发件人邮箱 
.Item(schema & "sendpassword") = Password '发件人邮箱密码 
.Item(schema & "smtpserverport") = 465 'SMTP服务器端口 
.Item(schema & "smtpusessl") = True '是否使用SSL 
.Item(schema & "smtpconnectiontimeout") = 60 '连接服务器的超时时间 
.Update '更新设置 
End With 
CDO.Send '发送邮件
If Err.number<>0 Then '判断是否出错
SendMail=False 
msgbox "发送失败" 
Else 
SendMail=True 
msgbox "发送成功" 
End If 
Set CDO=Nothing

参考原文:http://www.jb51.net/article/26105.htm

4. 正文来自文件,文件读取

 

复制代码代码如下:

content= "D:\dailyreport.txt"
set fso=createobject("scripting.filesystemobject")
if fso.fileexists(content) then
set fil=fso.getfile(content)
filename=fil.name
if lcase(right(filename,4))=".txt" then
set txt=fso.opentextfile(content,1)
task=txt.readall
txt.close
end if
end if
5. Q&A

Q1:读取的文件后,发送的中文显示乱码,怎么解决?

A:由于编码格式不正确导致的,需要反文件编码格式改成ASCII格式。

Q2:使用批处理运行vsb文件,出现中文的赋值的地方都报错了,怎么回事?

A:也是由于编码格式不正确导致的,需要把文件编码格式改成ASCII格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值