Pergunta

Gostaria de enviar e-mails a partir de um script em um 2003 Standard Edition Windows Server. Eu acho que a configuração do servidor é praticamente fora da caixa.

O servidor de correio é uma uma troca, e quando você está na rede interna, você pode usar planície SMTP idade. Tenho feito isso da minha máquina com Perl, mas infelizmente Perl não está disponível no servidor.

Existe uma maneira fácil de fazer isso a partir de um arquivo .bat ou qualquer outra forma que não requer instalação de algum software adicional?

Edit:
Obrigado pelas respostas rápidas. O "blat" thingie provavelmente funcionam bem, mas com wscript Eu não tenho de usar um binário separado.

Eu não vi o post de PhiLho a primeira vez editado e selecionado uma resposta. Não há necessidade de me para duplicar o código aqui.

Apenas salvar o script para um arquivo, dizer SENDMAIL.VBS e, em seguida, chamá-lo a partir do prompt de comando assim:
wscript sendmail.vbs

Foi útil?

Solução

É possível com 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

Update: encontrada mais informação lá: VBScript para enviar enviar e-mail Usando CDO Por padrão, ele parece que ele usa Outlook [Expresso], por isso não funcionou no meu computador, mas você pode usar um servidor SMTP dado, que funcionou bem para mim.

Outras dicas

Eu não sei se soltando um binário ao lado das contagens de arquivo .bat como a instalação de software, mas, se não, você pode usar Blat para fazer isso.

Se o servidor aconteceu (Sei quantos anos esta pergunta é) ter Powershell v2 instalado, o cmdlet Send-MailMessage faria isso em uma linha.

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 você tiver Outlook / Exchange instalado, você deve ser capaz de usar CDONTS, basta criar um arquivo mail.vbs e chamá-lo em um arquivo de lote assim (divertindo eles estão no mesmo dir)

wscript mail.vbs

para o código VBScript confira

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

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

esquecer o fato de que os dois links falar sobre ASP, ele deve funcionar bem como um só roteiro suporte com o IIS.

Eu acho que você vai ter que instalar algum ActiveX ou outro componente que poderia ser chamado de WScript, tais como: http://www.activexperts.com/ActivEmail/ e: http://www.emailarchitect.net/webapp/SMTPCOM/developers/scripting. asp

Caso contrário, você terá que escrever a lógica SMTP inteira (se possível, não tenho certeza) em WScript tudo por conta própria.

Use CDONTS com o Windows Scripting Host (WScript)

Existe uma maneira de enviar sem fazer referência as urls esquema de fora. http://schemas.microsoft.com/cdo/configuration/

Isso é altamente inútil, uma vez que não se pode assumir todas as caixas terão acesso à Internet fora para enviar correio internamente na bolsa local. Existe uma maneira de salvar a informação daqueles urls localmente?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top