Command line 使用命令行发送邮件

Command line 使用命令行发送邮件,command-line,sendmail,Command Line,Sendmail,有人能帮我吗?我们需要从Windows服务器通过命令行发送邮件。由于安全问题,我们无法使用Blat,我们也不想安装Exchange资源工具包。我们有自己的邮件交换服务器,我们可以利用它 可能是任何可以运行以访问SMTP邮件服务器的批处理 提前感谢。假设您不想安装任何SMTP客户端,只想使用windows和批处理文件,您可以使用Telnet连接到SMTP服务器的端口25并手动发送命令。 . 无论如何,我个人更愿意安装一些命令行SMTP客户端,比如Blat或,而不是直接与SMTP进行交互。我在不使用

有人能帮我吗?我们需要从Windows服务器通过命令行发送邮件。由于安全问题,我们无法使用Blat,我们也不想安装Exchange资源工具包。我们有自己的邮件交换服务器,我们可以利用它

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


提前感谢。

假设您不想安装任何SMTP客户端,只想使用windows和批处理文件,您可以使用Telnet连接到SMTP服务器的端口25并手动发送命令。 .

无论如何,我个人更愿意安装一些命令行SMTP客户端,比如Blat或,而不是直接与SMTP进行交互。

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

请查看下面的链接


快乐编码

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

set sender=“”
set recipient=“”
set subc=“testsubc”
set body=“testbody”
set srv=“mysmtpsrv.com”
设置端口=“25”
设置crlf=“\x0D\x0A”
echo“EHLO man${crlf}\
邮件发件人:${sender}${crlf}\
RCPT收件人:${recipient}${crlf}\
数据${crlf}\
主题:${subj}${crlf}${crlf}\
${body}\
${crlf}.${crlf}”\
|\
nc-Ci 1${srv}${port}
(这样使用确保以Unix样式保存文件(只有
\x0A
字符会添加在
回显“…\
反斜杠”之后)。
否则,只需删除反斜杠和换行符,这会将所有内容放在一行上并使其正常工作,但视觉结构会变差。)

HowToGeek演示了一个Windows PowerShell脚本,该脚本在

方法如下: 首先定义变量:

$EmailFrom=”yourMail@gmail.com“
$EmailTo=“收件人”sAddress@someServer.com“
$Subject=“您的主题”
$Body=“一些文本”
$SMTPServer=“smtp.gmail.com”
$SMTPClient=新对象Net.Mail.SMTPClient($SmtpServer,587)
$SMTPClient.EnableSsl=$true
$SMTPClient.Credentials=新对象System.Net.NetworkCredential(“YourGmail用户名”、“密码”)

然后,您将使用以下命令发送邮件:

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


您需要一个有效的Gmail帐户才能作为Gmail用户进行身份验证。

要从windows中的命令行发送邮件:-
将其保存在文本文件中,并将该文件命名为类似于sendmail.ps1

$EmailFrom = "from@gmail.com"

$EmailTo = "to@domain.com"

$Subject = "The subject of your email"

$Body = "What do you want your email to say"

$SMTPServer = "smtp.gmail.com"

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("gmail_username", "password");

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
-不要忘记输入有效的电子邮件地址和密码

现在打开CMD并编写这个命令

Powershell-ExecutionPolicy旁路-文件C:\sendmail.ps1


瞧!邮件已发送!!

这是一个从Gmail地址发送邮件的示例,对于其他服务器,您需要更改-smtp和-port

$securepass=converttosecurestring-String$yourspassword-A-F

$credential=新对象PSCredential$yourusername$securepass

发送邮件消息-从“$yourusername@gmail.com“-to$recipient-subject“subject”-body“message”-smtpserver smtp.gmail.com-端口587-使用SSL-凭据$credential-编码utf8”

以下是可以从Gmail发送邮件的脚本:

Blat的安全问题是什么?
$EmailFrom = "from@gmail.com"

$EmailTo = "to@domain.com"

$Subject = "The subject of your email"

$Body = "What do you want your email to say"

$SMTPServer = "smtp.gmail.com"

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("gmail_username", "password");

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