Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux shell脚本中使用SMTP发送电子邮件而不提供密码?_Shell_Email_Smtp - Fatal编程技术网

如何在Linux shell脚本中使用SMTP发送电子邮件而不提供密码?

如何在Linux shell脚本中使用SMTP发送电子邮件而不提供密码?,shell,email,smtp,Shell,Email,Smtp,我想在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="Started" set Body="Body" set SMTPServer="smtp.com

我想在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="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“测试电子邮件”xyz。joshi@company.com
您可以使用sendmail:

/usr/sbin/sendmail -f from@from.com to@to.com < /file/to/send
/usr/sbin/sendmail-ffrom@from.com to@to.com

其中/file/to/send包含RFC 2822 Internet邮件格式的邮件。

上述代码发送邮件,但发件人地址将为root@pcName.com默认情况下。我们可以在这里更改发件人地址吗?
/usr/sbin/sendmail -f from@from.com to@to.com < /file/to/send