Ich habe eine TXT-Datei erstellt den Nachrichtentext des Vbscript zu unterstützen, aber es liest nur die letzte Zeile des messagebody.txthinzufügen die eine neue Zeile in Nachrichtentext mit folgenden Vbscript
WScript.Sleep 100
Set WshShell=WScript.CreateObject("WScript.Shell")
Set objShell=WScript.CreateObject("WScript.Shell")
set objOutlook=CreateObject("Outlook.Application")
Set objMail=CreateObject("CDO.Message")
Set objMail=objOutlook.CreateItem(0)
strDesktop = WshShell.SpecialFolders("Desktop")
Set objFileToReadTo = CreateObject("Scripting.FileSystemObject").OpenTextFile(strDesktop + "\\send email with attachment\List_To.txt",1)
Set objFileToReadCC = CreateObject("Scripting.FileSystemObject").OpenTextFile(strDesktop + "\\send email with attachment\List_CC.txt",1)
Set objFileToReadSubject = CreateObject("Scripting.FileSystemObject").OpenTextFile(strDesktop + "\\send email with attachment\List_Subject.txt",1)
Set objFileToReadBody = CreateObject("Scripting.FileSystemObject").OpenTextFile(strDesktop + "\\send email with attachment\Email Body.txt",1)
Set objFileToReadAttachments = CreateObject("Scripting.FileSystemObject").OpenTextFile(strDesktop + "\\send email with attachment\List_Attachments_withFileExtension.txt",1)
Dim strLineTo
Dim strLineCC
Dim strLineSubject
Dim strLineBody
Dim strLineAttachments
objMail.Display
WScript.Sleep 10
do while not objFileToReadTo.AtEndOfStream
strLineTo = objFileToReadTo.ReadLine()
objMail.To=strLineTo
loop
objFileToReadTo.Close
WScript.Sleep 10
do while not objFileToReadCC.AtEndOfStream
strLineCC = objFileToReadCC.ReadLine()
objMail.cc = strLineCC
loop
objFileToReadCC.Close
'41
WScript.Sleep 10
do while not objFileToReadSubject.AtEndOfStream
strLineSubject = objFileToReadSubject.ReadLine()
objMail.Subject = strLineSubject
loop
objFileToReadSubject.Close
'48
WScript.Sleep 10
do while not objFileToReadBody.AtEndOfStream
strLineBody = objFileToReadBody.ReadLine()
objMail.Body = strLineBody & vbCRLF
loop
objFileToReadBody.Close
'55
WScript.Sleep 10
do while not objFileToReadAttachments.AtEndOfStream
strLineAttachments = objFileToReadAttachments.ReadLine()
objMail.Attachments.Add(strLineAttachments)
loop
objFileToReadAttachments.Close
'62
'objShell.Sendkeys "%s"
WScript.Sleep 40
'objShell.SendKeys "{TAB}"
'objShell.SendKeys "{UP}"
'objShell.SendKeys "{Enter}"
'set MyEmail=nothing
'objOutlook.Quit
'Set objMail = Nothing
'Set objOutlook = Nothing
und hier ist mein messagebody.txt
Hi,
Testing vbscript
Regards,
abcd
Es liest nur die letzte ABCD und zeigt das gleiche auf dem oulook Fenster.
Wie kann ich dem Skript mehrere Zeilen zuordnen?
Eigentlich der Grund ist, dass sie den Text nicht an den Body anhängen, jede Zeile ersetzt den Bodytext, statt 'ReadAll' würde dies das Problem' objMail.Body = objMail.Body & strLineBody' beheben. – Lankymart
@Lankymart was noch habe ich in den Kommentar Teil des Codes geschrieben. Ich habe gerade geschrieben, dass er bei jedem Readline-Aufruf die bestehende Zeile überschreibt. Eine bessere Möglichkeit, alle Inhalte zu integrieren, besteht darin, die readAll-Methode gleichzeitig zu verwenden und sie im E-Mail-Textkörper zu speichern. Was stimmt damit nicht? – Gurman
Kein besserer Weg ist es, jede Zeile anzufügen, die Verwendung von 'ReadAll' ist ineffizient, besonders wenn die Textanforderungen an Größe zunehmen ... und es wird. – Lankymart