通过CMD控制台发送邮件

时间:2013-09-06 07:13:57

标签: email console cmd smtp sendmail

您好我想通过microsoft cmd控制台发送邮件。我尝试了很多方式,但我没有成功。

我试过这篇文章http://jpsoft.com/help/index.htm?sendmail.htm

sendmail "bob@bob.com bcc:joe@joe.com" Test Hello!

错误是:

'sendmail' is not recognized as an internal or external command operable program or batch file

这篇文章:http://www.brighthub.com/office/collaboration/articles/21840.aspx#imgn_1

c:\>"c:\program files\microsoft office\office12\outlook.exe" /c ipm.note /m someone@gmail.com /a "c:\logs\logfile.txt"

错误是:

the process can not access the file because it is being used by another proccess

但它没有奏效。我不知道问题出在哪里或问题是什么。

感谢您的建议。

4 个答案:

答案 0 :(得分:21)

方案: 您的域名:mydomain.com 您希望发送到的域名:theirdomain.com

<强> 1。确定您要发送的邮件服务器。  打开CMD提示  输入

NSLOOKUP 
 set q=mx 
 theirdomain.com

回复:

Non-authoritative answer: 
theirdomain.com MX preference = 50, mail exchanger = mail.theirdomain.com 
Nslookup_big

修改 请务必键入 exit 以终止NSLOOKUP。

<强> 2。连接到他们的邮件服务器

SMTP通过端口25进行通信。我们现在将尝试使用TELNET连接到他们的邮件服务器"mail.theirdomain.com"

打开CMD提示

TELNET MAIL.THEIRDOMAIN.COM 25

你应该看到这样的回应:

220 mx.google.com ESMTP 6si6253627yxg.6

请注意,不同的服务器会提出不同的问候语,但您应该得到SOMETHING。如果此时没有任何问题,则有两个可能的问题。端口25在防火墙处被阻止,或者他们的服务器没有响应。尝试使用其他域名,如果有效,则不是你。

第3。发送电子邮件

现在,使用简单的SMTP命令发送测试电子邮件。这非常重要,您不能使用退格键,它将在屏幕上工作但不能正确解释。你必须完美地输入这些命令。

ehlo mydomain.com 
mail from:<martin9700@mydomain.com> 
rcpt to:<recipient@theirdomain.com> 
data 
This is a test, please do not respond
. 
quit

那么,这意味着什么呢? EHLO - 向您自己介绍邮件服务器也可以使用HELO,但EHLO告诉服务器使用扩展命令集(不是我们正在使用它)。

MAIL FROM - 谁在发送电子邮件。请确保将此值设置为大于/小于括号,因为许多电子邮件服务器将需要此(Postini)。

RCPT TO - 您要将其发送给谁。您需要再次使用括号。请参阅步骤#4,了解如何测试中继邮件!

DATA - 告诉SMTP服务器以下内容是您电子邮件的正文。确保最后点击“Enter”。

。 - 单独在该行上的时段告诉SMTP服务器您已完成数据部分,并且很清楚发送电子邮件。

退出 - 退出TELNET会话。

<强> 4。测试SMTP中继 测试SMTP中继非常简单,只需要对上述命令进行少量更改即可。见下文:

ehlo mydomain.com 
mail from:<martin9700@mydomain.com> 
rcpt to:<recipient@someotherdomain.com> 
data 
This is a test, please do not respond 
. 
quit

看到区别?在RCPT TO行,我们将发送到不受我们发送的SMTP服务器控制的域。您将立即收到SMTP中继关闭错误。如果您能够继续并发送电子邮件,则该服务器允许中继。

答案 1 :(得分:4)

除非您想通过telnet直接与SMTP服务器通信,否则您将使用blat之类的命令行邮件:

blat -to you@example.com -f me@example.net -s "mail subject" ^
  -server smtp.example.net -body "message text"

bmail

bmail -s smtp.example.net -t you@example.com -f me@example.net -h ^
  -a "mail subject" -b "message text"

您也可以在VBScriptPowerShell编写自己的邮件。

答案 2 :(得分:1)

从Linux上你可以使用&#39; swaks&#39;这是EPEL上的Debian / Ubuntu和Redhat / CentOS等许多发行版的官方软件包:

swaks -f you@example.net -t someone@example.com \
    --server mail.example.com

答案 3 :(得分:0)

更多命令行邮件程序:

两者都支持SSL。