sen email ohne qoutes vbs

668
user1603548

Ich verwende dieses Skript, um E-Mails an Personen zu senden, die ich ständig mit Kurznachrichten versende, sowie die Aktualisierung meiner Rememberthemilk -ToDos von launchy.

Wenn ich eine neue Aufgabe hinzufügen muss, muss ich einfach

  1. Hit alt + Raum (ruft launchy )
  2. Typ rr
  3. Hit Registerkarte
  4. tippe "das ist mein todo"
  5. Drücken Sie Enter

Was ich gerne machen würde, ist, das "" nicht schreiben zu müssen, da mich das langsamer verlangsamt.

Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields schema = "http://schemas.microsoft.com/cdo/configuration/" Flds.Item(schema & "sendusing") = 2 Flds.Item(schema & "smtpserver") = "smtp.GMAIL.com" Flds.Item(schema & "smtpserverport") = 465 Flds.Item(schema & "smtpauthenticate") = 1 Flds.Item(schema & "sendusername") = "YOU@GMAIL.COM" Flds.Item(schema & "sendpassword") = "YOURPASSWORD" Flds.Item(schema & "smtpusessl") = 1 Flds.Update  With iMsg .To = "RECIEVER@MAIL.COM" .From = "jacob <YOU@GMAIL.COM" .Subject = wscript.arguments.item(0) .HTMLBody = message .Sender = " " .Organization = " " .ReplyTo = " " Set .Configuration = iConf SendGMAILGmail = .Send End With  set iMsg = nothing set iConf = nothing set Flds = nothing 
1

1 Antwort auf die Frage

1
zelanix

Ich bin nicht sicher, ob ich die Frage vollständig verstehe, aber ich gehe davon aus, dass Ihre Aufgabe ausgeführt wird, indem Sie die Eingabezeilen als Befehlszeilenargumente an das Skript übergeben und weil Sie wscript.arguments.item(0)als Betreff die Anführungszeichen verwenden Stellen Sie sicher, dass das gesamte Thema im ersten Argument enthalten ist.

Mit dem (etwas verrückten) Code von hier sollte Folgendes funktionieren

Set oWMISrvc = GetObject("winmgmts:" _ & "!\\.\root\cimv2") sProcName = Mid(wsh.fullname, InstrRev(wsh.fullname, "\") + 1) Set cProcesses = oWMISrvc.ExecQuery( _ "select * from win32_process where Name = '" & sProcName & "'") For Each oProcess in cProcesses If Instr(lcase(oProcess.Commandline), lcase(wsh.scriptname)) > 0 Then sCmdLine = oProcess.Commandline End If Next  iNamePos = instr(lcase(sCmdLine), lcase(Wscript.ScriptName))  sArguments = trim(mid(sCmdLine, iNamePos + len(Wscript.ScriptName)))  Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields schema = "http://schemas.microsoft.com/cdo/configuration/" Flds.Item(schema & "sendusing") = 2 Flds.Item(schema & "smtpserver") = "smtp.GMAIL.com" Flds.Item(schema & "smtpserverport") = 465 Flds.Item(schema & "smtpauthenticate") = 1 Flds.Item(schema & "sendusername") = "YOU@GMAIL.COM" Flds.Item(schema & "sendpassword") = "YOURPASSWORD" Flds.Item(schema & "smtpusessl") = 1 Flds.Update  With iMsg .To = "RECIEVER@MAIL.COM" .From = "jacob <YOU@GMAIL.COM" .Subject = sArguments .HTMLBody = message .Sender = " " .Organization = " " .ReplyTo = " " Set .Configuration = iConf SendGMAILGmail = .Send End With  set iMsg = nothing set iConf = nothing set Flds = nothing 

Alternativ verketten Sie einfach alle angegebenen Argumente:

sArguments = "" For i = 0 to Wscript.Arguments.Count - 1 if i > 0 Then sArguments = sArguments + " " End If sArguments = sArguments + Wscript.Arguments(i) Next  Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields schema = "http://schemas.microsoft.com/cdo/configuration/" Flds.Item(schema & "sendusing") = 2 Flds.Item(schema & "smtpserver") = "smtp.GMAIL.com" Flds.Item(schema & "smtpserverport") = 465 Flds.Item(schema & "smtpauthenticate") = 1 Flds.Item(schema & "sendusername") = "YOU@GMAIL.COM" Flds.Item(schema & "sendpassword") = "YOURPASSWORD" Flds.Item(schema & "smtpusessl") = 1 Flds.Update  With iMsg .To = "RECIEVER@MAIL.COM" .From = "jacob <YOU@GMAIL.COM" .Subject = sArguments .HTMLBody = message .Sender = " " .Organization = " " .ReplyTo = " " Set .Configuration = iConf SendGMAILGmail = .Send End With  set iMsg = nothing set iConf = nothing set Flds = nothing 

Die zu verwendende Methode hängt von Ihren Anforderungen ab. Die erste Methode behält alle Anführungszeichen in der Befehlszeile bei, während die zweite Methode den Abstand zwischen Wörtern ignoriert.

der zweite war der, den ich brauchte, dh * meine Leerzeichen ignorieren * user1603548 vor 10 Jahren 0
Hier ist der Fehlercode https://www.evernote.com/shard/s4/nl/505992/3b290a31-aa6d-4894-bfd2-444ac9fbd5ec und hier ist die Zeile, über die er sich beschwert: user1603548 vor 10 Jahren 0
SendGMAILGmail = .Send user1603548 vor 10 Jahren 0
Ich kann Ihren Fehler nicht sehen :( zelanix vor 10 Jahren 0
https://www.dropbox.com/s/x27tdqa48k1z8zv/ScreenClip%202014-07-11.png user1603548 vor 10 Jahren 0
Sie haben Ihre E-Mail-Adresse und Ihr Passwort geändert, oder? Es funktioniert gut für mich, aber wenn ich es laufen lasse, erhalte ich den gleichen Fehler. zelanix vor 10 Jahren 0
anderer kleiner Fehler entdeckt es. user1603548 vor 10 Jahren 0