我在DOS中有一个批处理文件可以进行一些检查,我需要在完成后发送一封电子邮件。我在interwebz上找到了一些解决方案,但大多数都是第三方,或者只是在Outlook中打开一条新消息。我需要命令才能完整地发送电子邮件,而无需任何人为干预。
如果重要的话,我们在这里使用MS Exchange。
谢谢!
答案 0 :(得分:3)
假设:
您可以通过Telnet发送简单的电子邮件。此链接显示了如何执行此操作的示例:http://www.yuki-onna.co.uk/email/smtp.html
如果假设2或3错误,您可以编写命令行SMTP客户端,以便以多种语言轻松发送简单电子邮件,然后从批处理文件中调用它。
答案 1 :(得分:3)
答案 2 :(得分:1)
尝试http://caspian.dotconf.net/menu/Software/SendEmail/。
这是第三方实用程序,但您可以轻松地从批处理文件中调用它。我做。我有同样的需求:在批处理文件的末尾发送电子邮件,没有人为干预。
答案 3 :(得分:0)
如果您的主机操作系统具有PowerShell,则只需执行以下操作,就可以从incurring script-execution privilege blocking到CMD.EXE作为单行代码(有效地)完成此操作:
powershell -command $S=New-Object Net.Mail.SmtpClient('your.smtp.server',port);$S.Send('addr-from','addr-to','subject','body')
用;连接行;并作为一个PS命令执行就可以避免检查/设置脚本的执行。当然,在CMD.EXE中,单个命令字符串的长度有一个limitation,因此,这种精确的技术对接收者的数量,主题和正文的大小等设置了一些限制。我敢肯定,这是其他地方所涵盖的。
自然,我的用法更加强大,被封装在.BAT中,将其转换成具有参数检查,错误处理,日志记录等功能的实用程序(对于锁定的Windows主机上的低摩擦脚本而言是完美的) 。发疯。
如果您的SMTP服务器需要身份验证,则可以根据需要添加additional necessary configuration of the SmtpClient,这当然会进一步限制长度。
编辑:将其插入$S.Send
之前以添加身份验证:
$S.EnableSsl=$true;$S.Credentials=New-Object System.Net.NetworkCredential('usr', 'pass');
答案 4 :(得分:0)
eng_articles = Newspapers.objects.values_list('eng_article', flat=True)
esp_article = Newspapers.objects.values_list('esp_article', flat=True)
这对我有用
但是我必须发送一封带有多个收件人附件的电子邮件