如何使用SMTP在Linux shell脚本中发送电子邮件而不提供密码? [英] How to send email in Linux shell script using SMTP without providing the password?
本文介绍了如何使用SMTP在Linux shell脚本中发送电子邮件而不提供密码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想发送电子邮件到shell脚本,它使用smtp协议,没有任何密码认证。以下脚本使用SMTP协议发送电子邮件:
@echo off
setlocal
set Port = 25
set SSL = False
set From =xyz.joshi@company.com
set To =qwerty@company.com
set Subject =
set Body =Body
set SMTPServer =smtp.company.com
set User =xyz.joshi@company.com
set fileattach =
如果%〜7NEQ(
set From =%〜1
set To =%〜2
set Subject = %〜3
set Body =%〜4
set SMTPServer =%〜5
set User =%〜6
set Pass =% 〜7
set fileattach =%〜8
)
setvbsfile =%temp%\email-bat.vbs
del% vbsfile%2> nul
set cdoSchema = http://schemas.microsoft.com/cdo/configuration
echo>>%vbsfile%设置objArgs = WScript.Arguments
echo>>%vbsfile%Set objEmail = CreateObject(CDO.Message)
echo>>%vbsfile%objEmail.From =%From%
echo>> ;%vbsfile%objEmail.To =%到%
echo>>%vb sfile%objEmail.Subject =%Subject%
echo>>%vbsfile%objEmail.Textbody =%body%
如果存在%fileattach%echo>>%vbsfile% objEmail.AddAttachment%fileattach%
echo>>%vbsfile%with objEmail.Configuration.Fields
echo>>%vbsfile%.Item(%cdoSchema%/ sendusing )= 2'not local,smtp
echo>>%vbsfile%.Item(%cdoSchema%/ smtpserver)=%SMTPServer%
echo>>%vbsfile% .Item(%cdoSchema%/ smtpserverport)=%port%
echo>>%vbsfile%.Item(%cdoSchema%/ smtpauthenticate)= 1'cdobasic
echo >%vbsfile%.Item(%cdoSchema%/ sendusername)=%user%
echo>>%vbsfile%.Item(%cdoSchema%/ smtpusessl)= %SSL%
echo>>%vbsfile%.Item(%cdoSchema%/ smtpconnectiontimeout)= 30
echo>>%vbsfile%.Update
echo>>%vbsfile%结尾以
echo>>%vbsfile%objEmail.Send
cscript.exe / nologo%vbsfile%
回覆电子邮件发送
del%vbsfile%2> nul
goto:EOF
解决方案
mail -sTest Emailxyz.joshi@company.com< / dev / null
I want to send email in shell script which uses smtp protocol and without any password authentication.
I have the below batch file which sends mail without password. The below script using SMTP protocol to send email:
@echo off
setlocal
set Port=25
set SSL=False
set From="xyz.joshi@company.com"
set To="qwerty@company.com"
set Subject="Started"
set Body="Body"
set SMTPServer="smtp.company.com"
set User="xyz.joshi@company.com"
set fileattach=""
if "%~7" NEQ "" (
set From="%~1"
set To="%~2"
set Subject="%~3"
set Body="%~4"
set SMTPServer="%~5"
set User="%~6"
set Pass="%~7"
set fileattach="%~8"
)
set "vbsfile=%temp%\email-bat.vbs"
del "%vbsfile%" 2>nul
set cdoSchema=http://schemas.microsoft.com/cdo/configuration
echo >>"%vbsfile%" Set objArgs = WScript.Arguments
echo >>"%vbsfile%" Set objEmail = CreateObject("CDO.Message")
echo >>"%vbsfile%" objEmail.From = %From%
echo >>"%vbsfile%" objEmail.To = %To%
echo >>"%vbsfile%" objEmail.Subject = %Subject%
echo >>"%vbsfile%" objEmail.Textbody = %body%
if exist %fileattach% echo >>"%vbsfile%" objEmail.AddAttachment %fileattach%
echo >>"%vbsfile%" with objEmail.Configuration.Fields
echo >>"%vbsfile%" .Item ("%cdoSchema%/sendusing") = 2 ' not local, smtp
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpserver") = %SMTPServer%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpserverport") = %port%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpauthenticate") = 1 ' cdobasic
echo >>"%vbsfile%" .Item ("%cdoSchema%/sendusername") = %user%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpusessl") = %SSL%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpconnectiontimeout") = 30
echo >>"%vbsfile%" .Update
echo >>"%vbsfile%" end with
echo >>"%vbsfile%" objEmail.Send
cscript.exe /nologo "%vbsfile%"
echo email sent
del "%vbsfile%" 2>nul
goto :EOF
解决方案
mail -s "Test Email" xyz.joshi@company.com < /dev/null
这篇关于如何使用SMTP在Linux shell脚本中发送电子邮件而不提供密码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文