2008-09-30 9 views
9

Ich möchte E-Mail von einem Skript auf einer Windows Server 2003 Standard Edition senden. Ich denke, das Server-Setup ist ziemlich out-of-the-box.E-Mail von einem Windows-Skript senden

Der Mail-Server ist ein Exchange-Server, und wenn Sie im internen Netzwerk sind, können Sie einfach altes SMTP verwenden. Ich habe es von meinem Rechner aus mit Perl gemacht, aber leider ist Perl auf dem Server nicht verfügbar.

Gibt es eine einfache Möglichkeit, dies aus einer .bat-Datei oder einem anderen Weg zu tun, der keine zusätzliche Software erfordert?

Edit:
Danke für die schnellen Antworten. Das "blat" Ding würde wahrscheinlich gut funktionieren, aber mit wscript muss ich keine separate Binärdatei verwenden.

Ich habe PhiLho's Beitrag nicht gesehen, als ich das erste Mal eine Antwort bearbeitet und ausgewählt habe. Ich brauche den Code hier nicht zu kopieren.

speichern Sie einfach das Skript in eine Datei, sagen SENDMAIL.VBS, und dann rufen Sie an der Eingabeaufforderung wie folgt:
wscript sendmail.vbs

Antwort

9

Es ist möglich, mit Wscript, mit CDO:

Dim objMail 

Set objMail = CreateObject("CDO.Message") 

objMail.From = "Me <[email protected]>" 
objMail.To = "You <[email protected]>" 
objMail.Subject = "That's a mail" 
objMail.Textbody = "Hello World" 
objMail.AddAttachment "C:\someFile.ext" 

---8<----- You don't need this part if you have an active Outlook [Express] account ----- 
' Use an SMTP server 
objMail.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 

' Name or IP of Remote SMTP Server 
objMail.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ 
    "smtp.server.com" 

' Server port (typically 25) 
objMail.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 

objMail.Configuration.Fields.Update 
----- End of SMTP usage ----->8--- 

objMail.Send 

Set objMail=Nothing 
Wscript.Quit 

Update: mehr Informationen gefunden: VBScript To Send Email Using CDO standardmäßig es scheint, es verwendet Outlook [ Express], so dass es auf meinem Computer nicht funktioniert hat, aber Sie können einen bestimmten SMTP-Server verwenden, der für mich funktionierte.

+0

Erhalten ein 'Der Server hat die Absenderadresse abgelehnt ... Muss einen STARTTLS-Befehl zuerst ausgeben.' –

+0

@TomHoward Bei Mail-Servern müssen Sie häufig eine POP3-Anfrage durchführen, um den Benutzer zu authentifizieren, bevor Sie eine SMTP-Anfrage versenden. – PhiLho

6

Ich weiß nicht, ob das Löschen einer Binärdatei neben der .bat-Datei als Installation von Software zählt, aber wenn nicht, können Sie dazu blat verwenden.

1

Wenn Sie Outlook/Exchange installiert Sie sollten in der Lage sein CDONTS zu verwenden, um nur mail.vbs-Datei erstellen und es in einer Batch-Datei aufrufen, wie so (amüsant sie im selben Verzeichnis sind)

wscript mail.vbs 

für den VBScript-Code überprüfen

http://support.microsoft.com/kb/197920

http://www.w3schools.com/asp/asp_send_email.asp

vergessen die Tatsache, dass sie die beiden l Tinten sprechen über ASP, sollte es als eigenständiges Skript mit out iis gut funktionieren.

+0

CDONTS ist veraltet und ersetzt durch CDOSYS. http://support.microsoft.com/default.aspx/kb/810702 –

0

Verwenden CDONTS mit Windows Scripting Host (WScript)

0

Gibt es eine Möglichkeit, die Sie senden, ohne auf die externen Schema-URLs zu verweisen. http://schemas.microsoft.com/cdo/configuration/

Das ist sehr nutzlos, da nicht davon ausgegangen werden kann, dass alle Boxen über einen externen Internetzugang verfügen, um intern Nachrichten an der lokalen Vermittlungsstelle zu senden.Gibt es eine Möglichkeit, die Informationen lokal von diesen URLs zu speichern?

4

Wenn der Server passierte (ich weiß, wie alt diese Frage ist), um Powershell v2 installiert zu haben, würde das CmdLet Send-MailMessage dies in einer Zeile tun.

Send-MailMessage [-To] <string[]> [-Subject] <string> -From <string> [[-Body] <string>] [[-SmtpServer] <string>] [-Attachments <string[]>] [-Bcc <string[]>] [-BodyAsHtml] [-Cc <string[]>] [-Credential <PSCredential>] [-DeliveryNotficationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Encoding <Encoding>] [-Priority {Normal | Low | High}] [-UseSsl] [<CommonParameters>]