Domanda

Vorrei inviare posta da uno script su Windows Server 2003 Standard Edition. Penso che l'installazione del server sia praticamente pronta all'uso.

Il server di posta è uno di Exchange e quando sei sulla rete interna puoi usare il vecchio SMTP semplice. L'ho fatto dalla mia macchina con Perl, ma sfortunatamente Perl non è disponibile sul server.

Esiste un modo semplice per farlo da un file .bat o qualsiasi altro modo che non richiede l'installazione di software aggiuntivo?

Modifica:
Grazie per le risposte rapide. "Blat" cosa probabilmente funzionerebbe bene ma con wscript non devo usare un binario separato.

Non ho visto il post di PhiLho la prima volta che ho modificato e selezionato una risposta. Non ho bisogno di duplicare il codice qui.

Basta salvare lo script in un file, dire sendmail.vbs e quindi chiamarlo dal prompt dei comandi in questo modo:
wscript sendmail.vbs

È stato utile?

Soluzione

È possibile con Wscript, usando CDO:

Dim objMail

Set objMail = CreateObject("CDO.Message")

objMail.From = "Me <Me@Server.com>"
objMail.To = "You <You@AnotherServer.com>"
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

Aggiornamento: maggiori informazioni disponibili qui: VBScript per inviare Email tramite CDO Per impostazione predefinita, sembra che utilizzi Outlook [Express], quindi non ha funzionato sul mio computer ma è possibile utilizzare un determinato server SMTP, che ha funzionato bene per me.

Altri suggerimenti

Non so se far cadere un binario insieme al file .bat viene considerato come software di installazione, ma in caso contrario puoi usare blat per farlo.

Se il server (mi rendo conto di quanti anni ha questa domanda) abbia installato Powershell v2, CmdLet Send-MailMessage lo farebbe in una riga.

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>]

Se hai installato Outlook / Exchange dovresti essere in grado di usare i CDONT, basta creare un file mail.vbs e chiamarlo in un file batch in questo modo (divertente che siano nella stessa directory)

wscript mail.vbs

per il checkout del codice VBScript

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

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

dimentica il fatto che i due link parlano di ASP, dovrebbe funzionare benissimo come uno script autonomo senza ii.

Penso che dovrai installare alcuni ActiveX o altri componenti che potrebbero essere invocati da WScript, come: http://www.activexperts.com/ActivEmail/ e: http://www.emailarchitect.net/webapp/SMTPCOM/developers/scripting. asp

Altrimenti, dovrai scrivere l'intera logica SMTP (se possibile, non sono sicuro) in WScript da solo.

Usa CDONTS con Windows Scripting Host (WScript)

Esiste un modo per inviare senza fare riferimento agli URL dello schema esterno. http://schemas.microsoft.com/cdo/configuration/

Ciò è estremamente inutile in quanto non si può presumere che tutte le caselle disporranno di un accesso esterno a Internet per inviare posta internamente sullo scambio locale. C'è un modo per salvare le informazioni da quegli URL localmente?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top