Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 使用“发送邮件”命令时的电子邮件凭据_Email_Batch File_Powershell_Command_Powershell 2.0 - Fatal编程技术网

Email 使用“发送邮件”命令时的电子邮件凭据

Email 使用“发送邮件”命令时的电子邮件凭据,email,batch-file,powershell,command,powershell-2.0,Email,Batch File,Powershell,Command,Powershell 2.0,我搜索了很多论坛,他们确实解释了如何做到这一点,但技术语言太难理解,因为我对powershell非常陌生。我想一步一步向我解释这一点(婴儿步骤)。我想在批处理文件(.bat)中运行此powershell命令。我有一个每周进行robocopy备份的批处理文件,我希望该批处理文件在备份完成后向我发送电子邮件。我唯一的问题是凭证,我会看到一个弹出框,询问用户名和密码。当我输入此信息时,电子邮件将成功发送。这就是我所拥有的 使用:powershell V2.0 Windows 7 Ultimate Po

我搜索了很多论坛,他们确实解释了如何做到这一点,但技术语言太难理解,因为我对powershell非常陌生。我想一步一步向我解释这一点(婴儿步骤)。我想在批处理文件(.bat)中运行此powershell命令。我有一个每周进行robocopy备份的批处理文件,我希望该批处理文件在备份完成后向我发送电子邮件。我唯一的问题是凭证,我会看到一个弹出框,询问用户名和密码。当我输入此信息时,电子邮件将成功发送。这就是我所拥有的

使用:powershell V2.0 Windows 7 Ultimate

Powershell -command send-mailmessage -to emailadress@provider.com -from emailaddress@provider.com -smtp smtp.broadband.provider.com -usessl -subject 'backup complete' 

我不确定您是否可以使用sendmailmessage命令进行SMTP身份验证。但是,您可以通过需要使用Net.Mail.SmtpClient对象和System.Net.Mail.MailMessage对象进行身份验证的SMTP服务器发送邮件。请参阅以获得一个好的示例。

请查看

您将看到您可以通过参数
-credential domain01\admin01


如果不需要任何提示(将您的凭证保存在文本文件中),请查看此处。

您可以在同一命令中传递凭证对象-这将避免弹出:

Powershell -Command 'Send-MailMessage -to "emailadress@provider.com" -from "emailaddress@provider.com" -smtp "smtp.broadband.provider.com" -usessl -subject "backup complete" -credential (new-object System.Net.NetworkCredential("user","pass","domain"))'
我建议将用户名/密码存储在更安全的格式中,但这应该可以满足您的需要

Powershell -Command 'Send-MailMessage -to "emailadress@provider.com" -from "emailaddress@provider.com" -smtp "smtp.broadband.provider.com" -usessl -subject "backup complete" -credential (new-object System.Net.NetworkCredential("user","pass","domain"))'