【问题标题】:batch script to send email发送电子邮件的批处理脚本
【发布时间】:2011-06-11 14:24:55
【问题描述】:

如何编写 Windows 批处理脚本来发送邮件?举个例子

【问题讨论】:

    标签: email batch-file windows-server-2008


    【解决方案1】:

    您需要使用第三方工具,例如 blat (http://www.blat.net/)。然后在您的批处理文件中,您将有如下一行:

    blat -to foo@bar.com -f bar@foo.com -subject "电子邮件主题" -body "电子邮件正文" -server mysmtphost

    【讨论】:

      【解决方案2】:

      我建议下载并安装一个命令行电子邮件程序。我能看到的最好的免费软件是:

      http://www.beyondlogic.org/solutions/cmdlinemail/cmdlinemail.htm

      从那里,将下载的 .exe 保存到硬盘上的一个合适位置(可能在 c:/program files/bmail 中)并将该目录添加到您的 PATH(有关说明,请参阅http://www.brightrev.com/how-to/windows/35-add-a-utilities-directory-to-your-pc.html?start=1)。

      从那时起,您可以设置一个小批量脚本,如下所示:

      @echo off
      bmail -s smtp.example.com -p 465 -t toemail@example.com -f fromemail@example.com -h -a "INSERT SUBJECT HERE" -b "INSERT MESSAGE TEXT HERE"
      

      然后要向该电子邮件地址发送电子邮件,只需运行批处理文件即可。

      如果需要,您可以将其更改为接受参数,以便自定义消息:http://www.robvanderwoude.com/parameters.php

      重要提示:如果 SMTP 服务器需要身份验证,我很确定 bmail 将无法工作,因此您需要找到一个可以使用的。也许在服务器上设置一个没有用户名和密码,只能从 localhost 访问?

      【讨论】:

        【解决方案3】:

        您可以启用已安装的 Windows SMTP 服务器。 然后运行一个 power shell 脚本:

        $subject = $args[0]
        
        # Create from/to addresses
        $from = New-Object system.net.mail.MailAddress "remy@supertext.ch"
        $to = New-Object system.net.mail.MailAddress "remy.blaettler@gmail.com"
        
        # Create Message
        $message = new-object system.net.mail.MailMessage $from, $to
        $message.Subject = $subject
        $message.Body = @"
        Warning message from the Supertext Server
        "@
        
        # Set SMTP Server and create SMTP Client
        $server = "209.162.190.6"
        $client = new-object system.net.mail.smtpclient $server
        
        # SO do it
        "Sending an e-mail message to {0} by using SMTP host {1} port {2}." -f $to.ToString(), $client.Host, $client.Port
        try {
        $client.Send($message)
        }
        catch {
        "Exception caught in CreateTestMessage: {0}" -f $Error.ToString()
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多