Отправить почту из Windows-скрипта - PullRequest
10 голосов
/ 30 сентября 2008

Я хотел бы отправлять почту из скрипта на Windows Server 2003 Standard Edition. Я думаю, что настройка сервера в значительной степени из коробки.

Почтовый сервер является сервером Exchange, и когда вы находитесь во внутренней сети, вы можете использовать старый SMTP. Я сделал это со своей машины с Perl, но, к сожалению, Perl недоступен на сервере.

Есть ли простой способ сделать это из .bat-файла или любым другим способом, который не требует установки какого-либо дополнительного программного обеспечения?

Edit:
Спасибо за быстрые ответы. "Блат" вещь, вероятно, будет работать нормально, но с wscript мне не нужно использовать отдельный двоичный файл.

Я не видел сообщение Филио в первый раз, когда редактировал и выбирал ответ. Мне не нужно дублировать код здесь.

Просто сохраните сценарий в файл, скажем sendmail.vbs, а затем вызовите его из командной строки следующим образом:
wscript sendmail.vbs

Ответы [ 7 ]

10 голосов
/ 30 сентября 2008

Это возможно с Wscript, используя 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

Обновление: там больше информации: VBScript для отправки электронной почты с использованием CDO По умолчанию кажется, что он использует Outlook [Express], поэтому он не работал на моем компьютере, но вы можете использовать данный SMTP-сервер, который работал нормально для меня.

6 голосов
/ 30 сентября 2008

Я не знаю, считается ли удаление двоичного файла рядом с файлом .bat установкой программного обеспечения, но если нет, вы можете использовать blat для этого.

4 голосов
/ 27 ноября 2012

Если на сервере (я понимаю, сколько лет этому вопросу) установлен Powershell v2, CmdLet Send-MailMessage сделает это в одной строке.

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>]
1 голос
/ 30 сентября 2008

Если у вас установлен outlook / exchange, вы должны иметь возможность использовать CDONT, просто создайте файл mail.vbs и вызовите его в командном файле примерно так (забавно, что они находятся в одном каталоге)

wscript mail.vbs

для проверки кода VBScript

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

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

забудьте о том, что эти две ссылки говорят об ASP, он должен работать как отдельный скрипт без iis.

0 голосов
/ 09 марта 2011

Существует ли способ отправки без ссылки на внешние URL-адреса схемы. http://schemas.microsoft.com/cdo/configuration/

Это крайне бесполезно, поскольку нельзя предполагать, что все ящики будут иметь внешний доступ к Интернету для внутренней отправки почты на локальный обмен. Есть ли способ сохранить информацию из этих URL-адресов локально?

0 голосов
/ 30 сентября 2008

Использование CDONTS с Windows Scripting Host (WScript)

0 голосов
/ 30 сентября 2008

Я думаю, что вам придется установить какой-нибудь ActiveX или другой компонент, который может быть вызван из WScript, например: http://www.activexperts.com/ActivEmail/ а также: http://www.emailarchitect.net/webapp/SMTPCOM/developers/scripting.asp

В противном случае вам придется написать всю логику SMTP (если возможно, не уверен) в WScript самостоятельно.

...