質問

Windows Server 2003 Standard Editionのスクリプトからメールを送信したい。サーバーのセットアップはほとんどすぐに使えると思います。

メールサーバーはExchangeのものであり、内部ネットワークにいる場合は、従来のSMTPを使用できます。私は自分のマシンからPerlを使ってそれをやったが、残念ながらPerlはサーバー上で利用できない。

.batファイルからこれを行う簡単な方法や、追加のソフトウェアをインストールする必要のない他の方法はありますか?

編集:
迅速な返信をありがとう。 「blat」 thingieはおそらく正常に動作しますが、wscriptでは別のバイナリを使用する必要はありません。

最初に編集して回答を選択したとき、PhiLhoの投稿は表示されませんでした。ここでコードを複製する必要はありません。

スクリプトをファイルに保存し(sendmail.vbsなど)、コマンドプロンプトから次のように呼び出します。
wscript sendmail.vbs

役に立ちましたか?

解決

CDOを使用してWscriptで可能です:

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サーバーを使用できます。

他のヒント

.batファイルと一緒にバイナリをドロップしてもソフトウェアのインストールとしてカウントされるかどうかはわかりませんが、そうでない場合は blat でこれを行います。

Powershell v2をインストールするためにサーバーが発生した場合(この質問の古さを認識しています)、CmdLet Send-MailMessageはこれを1行で行います。

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

outlook / exchangeがインストールされている場合は、CDONTを使用できるはずです。mail.vbsファイルを作成し、そのようにバッチファイルで呼び出します(それらは同じディレクトリにあります)

wscript mail.vbs

VBScriptコードのチェックアウト

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

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

2つのリンクがASPについて語っているという事実を忘れてください。IISを使用しないスタンドアロンスクリプトとしては正常に動作するはずです。

次のような、WScriptから呼び出すことができるActiveXまたはその他のコンポーネントをインストールする必要があると思います。 http://www.activexperts.com/ActivEmail/ そして: http://www.emailarchitect.net/webapp/SMTPCOM/developers/scripting。 asp

それ以外の場合は、WScriptでSMTPロジック全体(可能な場合は不明)をすべて自分で記述する必要があります。

Windows Scripting Host(WScript)でCDONTSを使用する

外部スキーマURLを参照せずに送信する方法はありますか。 http://schemas.microsoft.com/cdo/configuration/

これは、すべてのボックスがローカルの交換で内部的にメールを送信するための外部インターネットアクセスを持つとは想定できないため、非常に役に立ちません。それらのURLの情報をローカルに保存する方法はありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top