使用命令行发送邮件

时间:2011-03-01 11:38:47

标签: command-line sendmail

任何人都可以帮助我,我们需要通过命令行从Window服务器发送邮件。我们不能根据安全问题使用Blat,也不想安装Exchange资源工具包。我们有自己的邮件交换服务器,我们可以使用它。

可能是任何可以运行以访问我们的SMTP邮件服务器的批处理。

提前致谢。

6 个答案:

答案 0 :(得分:0)

假设您不想安装任何SMTP客户端,并且只想使用Windows和批处理文件,您可以使用Telnet连接到smtp服务器的端口25并手动发送命令。 Here is an example of how to do this
无论如何,我个人更喜欢安装一些命令行SMTP客户端,如Blat或Bmail,而不是直接与SMTP交互的麻烦。

答案 1 :(得分:0)

我在不使用任何SMTP客户端的情况下解决了这个问题。我使用Windows Powershell脚本发送邮件,它运行良好。

请查看以下链接

http://blogs.msdn.com/b/powershell/archive/2009/10/30/sending-automated-emails-with-send-mailmessage-convertto-html-and-the-powershellpack-s-taskscheduler-module.aspx

快乐的编码!!

答案 2 :(得分:0)

一个非常好的解决方案我发现如果没有身份验证并且没有程序可以/应该安装或者可以假设存在,那么一般都很好,这应该是在Ubuntu和其他Linux平台上工作(您可以使用;命令分隔符将所有内容放在一行中,并删除\引用字符串中的echo字符):

set sender="<sender@example.com>"
set recipient="<recipient@example.com>"
set subj="testsubj"
set body="testbody"
set srv="mysmtpsrv.com"
set port="25"
set crlf="\x0D\x0A"

echo "EHLO man${crlf}\
MAIL FROM: ${sender}${crlf}\
RCPT TO: ${recipient}${crlf}\
data${crlf}\
Subject: ${subj}${crlf}${crlf}\
${body}\
${crlf}.${crlf}"\
|\
nc -Ci 1 ${srv} ${port}

(使用这样的方式确保以Unix样式保存文件(\x0A反斜杠后只添加echo "...\个字符)。 否则只需删除反斜杠和换行符,它将所有内容放在一行并使其工作,但视觉结构较少。)

答案 3 :(得分:0)

HowToGeek演示了一个在How To Send Email From the Command Line in Windows Without Extra Software

上运行良好的Windows PowerShell脚本

这是方法: 首先,您要定义变量:

  

$ EmailFrom =“yourMail@gmail.com”
  $ EmailTo =“theRecipient'sAddress@someServer.com”
  $ Subject =“你的主题”
  $ Body =“some text”
  $ SMTPServer =“smtp.gmail.com”
  $ SMTPClient = New-Object Net.Mail.SmtpClient($ SmtpServer,587)
  $ SMTPClient.EnableSsl = $ true
  $ SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“yourGmailUsername”,“password”);

然后,您正在使用此命令发送邮件:

  

$ SMTPClient.Send($ EmailFrom,$ EmailTo,$ Subject,$ Body)

您需要有效的Gmail帐户才能以Gmail用户身份进行身份验证。

答案 4 :(得分:0)

从Windows命令行发送邮件: -
将其保存在文本文件中,并将该文件命名为 sendmail.ps1

java.lang.IllegalStateException: Can't find field id customer.accountId

at org.tarantool.TarantoolConnection16Base.schema(TarantoolConnection16Base.java:214)

- 忘记输入有效的电子邮件地址和密码。

现在打开CMD并编写此命令

  

Powershell -ExecutionPolicy ByPass -File C:\ sendmail.ps1

瞧!邮件发送!!

答案 5 :(得分:-1)

这是从您的Gmail地址发送邮件的示例,用于更改-smtp和-port

所需的其他服务器

$ securepass = ConvertTo-SecureString -String $ yourpassword -A -F

$ credential = new-object PSCredential $ yourusername,$ securepass

send-mailmessage -from“$ yourusername@gmail.com”-to $ recipient -subject“subject”-body“message”-smtpserver smtp.gmail.com -port 587 -usessl -credential $ credential -encoding utf8 < / p>

以下是可以从Gmail发送邮件的脚本: https://gallery.technet.microsoft.com/scriptcenter/PC-Utilities-Downloader-355e5bfe