shell用smtp协议发送附件文件类型未知

shell用smtp协议发送附件文件类型未知,第1张

一般说,

echo "content-type:application/octet-streamContent-Transfer-Encoding:Base64charset=utf-8"

echo "content-Disposition:attachmentfilename="${tfile}""

是mime协议(电子邮件的框架格式).

http(或ftp)的头也是mime协议.

但是在下载(http协议头)中 Content-Transfer-Encoding:Base64这个好像没意义,只是在邮件格式中才有意义.

filename="${tfile}"

中的tfile跟据浏览器有所不同,要对filename做编码.

shell脚本无法实现

1、可以借助�º.shell命令执行另一个脚本文件或者用变量保存。比如a.sh和b.sh,a.sh中调用b.sh的代码,一起输出"hello world"的字符串。b.sh的代码如下echo " world!"。

2、a.sh可以借助"."来执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出,a.sh中的内容如下:echo "可以用.命令来执行脚本文件"echo "hello `./b.sh`"var=`./b.sh`echo"hello $var"。

3、a.sh也可以借助source命令执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出。a.sh中的内容如下:echo "用source命令执行脚本文件"echo "hello `source ./b.sh`"var=`source ./b.sh`echo "hello $var"。

4、a.sh中也可以借助于bash、sh等命令来执行b.sh脚本,b.sh的执行结果可以保存在变量中,也可以直接输出。a.sh中的内容如下。

5、另外,也可以使用$(),将b.sh的执行结果的内容保存到变量中,就完成了。

    笔者做过做过使用python发送邮件- Python使用yagmail库发送邮件 ,那么在不同平台都可以完成一些监控报警功能。但是在linux平台下,如果脚本是shell实现的,可以调用python脚本,也可以直接使用shell来发送。

    1、按照mailx软件包, 安装后在/usr/bin/mail

        sudo yum install mailx -y

    2、修改配置文件/etc/mail.rc

        直接修改配置文件vim /etc/mail.rc, 在最后追加下面的配置,笔者使用的是163邮箱。需要注意的是,需要进入邮箱开启SMTP服务,然后得到一个授权码,用于登录第三方邮件客户端的专用密码。smtp-auth-password即为授权码,而不是邮箱地方密码。

    3、发送邮箱测试

          命令行输入: echo "测试邮件" | mail -s "邮件主题" -a ./myshells/clear_buffcache.sh ***@qq.com  。-s添加邮箱主题,并添加附件后将邮箱内容一起发送给***@qq.com  。邮箱里面立马就可以收到了。

    也可以使用文件内容进行邮件发送:mail -s  "邮件主题"  收件地址  <  mail.txt  。

    也可以在命令行输入邮箱内容:mail -s  "邮件主题"  收件地址  ,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字。当邮件正文输入完成后,需要按CTRL+D结束输入后发送。

    如果发送失败,咋命令行会提示错误: message not sent,并会在用户目录下的dead.letter里面显示具体信息。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11768725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存