web-dev-qa-db-ja.com

バッチファイルからメールを送信する

ファイルをバックアップするスクリプトがあります。バックアップ操作が終了したら、レポートをメール通知として一部のメールアドレスに送信します。

これはどのように行うことができますか?

47
user73628

Blat

blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body"
36
Colin Pickard

Powershellスクリプトを使用することもできます。

$smtp = new-object Net.Mail.SmtpClient("mail.example.com")

if( $Env:SmtpUseCredentials -eq "true" ) {
    $credentials = new-object Net.NetworkCredential("username","password")
    $smtp.Credentials = $credentials
}
$objMailMessage = New-Object System.Net.Mail.MailMessage
$objMailMessage.From = "[email protected]"
$objMailMessage.To.Add("[email protected]")
$objMailMessage.Subject = "eMail subject Notification"
$objMailMessage.Body = "Hello world!"

$smtp.send($objMailMessage)
20

PowerShellには組み込みコマンドが付属しています 。したがって、.batファイルから直接実行する場合:

powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
    -SmtpServer server.address.name ^
    -To [email protected] ^
    -From [email protected] ^
    -Subject Testing ^
    -Body 123

[〜#〜] nb [〜#〜]-ExecutionPolicy ByPassは、CMDからPSを実行する権限を設定していない場合にのみ必要です。

また、powershell内から呼び出す場合は、-Command [包括的]の前にすべてをドロップすると、`がエスケープ文字(^ではなく)になります

11
Hashbrown

bmail 。 EXEをインストールして、次のような行を実行するだけです。

bmail -s myMailServer -f [email protected] -t [email protected] -a "Production Release Performed"
8
RossFabricant

最も簡単な方法は、他の人が述べたようにサードパーティのアプリケーションを使用することです

それがオプションではない場合、バッチスクリプトから呼び出したvbscriptとCDOを使用して簡単なsendmailユーティリティを作成しました。

こちらの例をご覧ください http://www.paulsadowski.com/WSH/cdo.htm

5
laurie

sendmailを使用することもできます。私はこのSubversionフックでそれを使用して電子メール通知を送信しています: post-commit hook

3

私たちは環境で常にこれを行うためにblatを使用しています。 Stunnel でGmailに接続するためにも使用します。ファイルを送信するためのパラメータは次のとおりです

blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body" -attach c:\temp\file.txt

または、そのファイルを本文として入れることができます

blat c:\temp\file.txt -to [email protected] -server smtp.example.com -f [email protected] -subject "subject"
3
Keng

この問題を処理する方法は複数あります。

私のアドバイスは、強力なWindowsフリーウェアコンソールアプリケーション SendEmail を使用することです。

sendEmail.exe -f [email protected] -o message-file=body.txt -u subject message -t [email protected] -a attachment.Zip -s smtp.gmail.com:446 -xu gmail.login -xp gmail.password
1