如何使用SMTP在Linux shell脚本中发送电子邮件而不提供密码? [英] How to send email in Linux shell script using SMTP without providing the password?

查看:238
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆