读取txt并将最后一行发送到电子邮件地址-vbscript
你好 我回来了哈哈:-)所以我有下一个问题,我希望有人能帮我。。。 我知道我有很多问题,但我会努力学习vbscript:-) 情况: 此脚本读取(每5分钟)txt的最后一行并将其发送到我的电子邮件地址 问题: 我会在5分钟内检查txt,但现在每5分钟就会有一封邮件。当txt中有新内容时,我将尝试仅获取一封新邮件读取txt并将最后一行发送到电子邮件地址-vbscript,vbscript,wsh,text-files,Vbscript,Wsh,Text Files,你好 我回来了哈哈:-)所以我有下一个问题,我希望有人能帮我。。。 我知道我有很多问题,但我会努力学习vbscript:-) 情况: 此脚本读取(每5分钟)txt的最后一行并将其发送到我的电子邮件地址 问题: 我会在5分钟内检查txt,但现在每5分钟就会有一封邮件。当txt中有新内容时,我将尝试仅获取一封新邮件 Option Explicit Dim fso, WshShell, Text, Last, objEmail Const folder = "C:\test.txt" Set f
Option Explicit
Dim fso, WshShell, Text, Last, objEmail
Const folder = "C:\test.txt"
Set fso=CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
Text = Split(fso.OpenTextFile(Datei, 1).ReadAll, vbCrLF)
Letzte = Text(UBound(Text))
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "test@test.com"
objEmail.To = "test@test.com"
objEmail.Subject = "Control"
objEmail.Textbody = Last
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtpip"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
WScript.Sleep 300000
Loop
有人能帮我吗
请原谅我的英语不好…您只收到一封邮件的原因是UBound,它只会给您数组的最后一个元素 要为每行发送邮件,您必须在发送邮件后记住上限,然后在行上循环
Option Explicit
Dim fso, WshShell, Text, Last, objEmail
Const folder = "C:\test.txt"
Set fso=CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
dim index = 1
Do
Text = Split(fso.OpenTextFile(Datei, 1).ReadAll, vbCrLF)
Letzte = Text(UBound(Text))
WScript.Sleep 300000
for i = index to UBound(Text)
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "test@test.com"
objEmail.To = "test@test.com"
objEmail.Subject = "Control"
objEmail.Textbody = Last
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtpip"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
Next
index = UBound(Text)
Loop
试试这个
Option Explicit
Dim fso, WshShell, Text, Last, objEmail, linecount
Const folder = "C:\test.txt"
linecount = 0
Set fso=CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
Text = Split(fso.OpenTextFile(Datei, 1).ReadAll, vbCrLF)
if UBound(Text) > linecount Then
linecount = UBound(Text)
Letzte = Text(UBound(Text))
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "test@test.com"
objEmail.To = "test@test.com"
objEmail.Subject = "Control"
objEmail.Textbody = Last
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtpip"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
End If
WScript.Sleep 300000
Loop
每隔5分钟它就会收到一封邮件,其中包含test.txt的最后一行!我现在的问题是,我只有在txt中有新内容时才会收到邮件。所以我会在5分钟内检查txt文件,如果其中有新内容(只有最后一行),我会收到一封邮件。我对我的英语很感兴趣。关键字时间戳例如谢谢,但这是相同的问题所有5分钟我成为一个邮件…但我只会收到一个邮件时,有一个新的行在txt。。。