linux(centos)发送带附件的邮件

前言:用程序发送邮件有3种方式,分别是:

1.模拟http请求邮件服务商网页实现邮件的发送

2.如果邮件服务商开通了smtp服务,那么可以通过smtp协议通过邮件代理服务商发送邮件

3.自己部署邮件服务器,直接在邮件服务器上发送邮件

 

前边两种方式相对简单,其实都可以理解为使用他人的邮件服务器发送邮件,相对来讲会过于依赖第三方的邮件服务器提供的服务,并且在发送邮件时邮件会先进邮件代理服务器的邮箱,再转发至收件人的邮箱,邮件中转过慢,所以在条件允许的情况下,我更喜欢采用我自己的邮件服务器发送邮件;

 

今天,我就对第三种邮件发送方式(linux(centos)下shell命令发送带附件的邮件)做一下总结

 

linux下邮件发送命令我常用的主要有mail,sendmail,mutt;

 

1.mail命令

    普通正文邮件发送命令格式:

            1)mail -s "邮件主题"  收件人@邮件服务商.com  < 邮件正文内容.txt(此方式需要把邮件正文内容先保存到 邮件正文内容.txt)

            2)步骤一:键入 mail -s "邮件主题"  收件人@邮件服务商.com

                 步骤二:点击enter回车按钮

                 步骤三:输入邮件正文内容

                 步骤四:点击enter回车按钮

                 步骤五:同时按住ctrl+d按钮

            3)echo  邮件正文内容 | mail -s "邮件主题"  收件人@邮件服务商.com

           

    

    带附件的邮件发送方式:

             在普通mail 命令后边加 -a 文件名

             例子“ mail -s "你好" -a a.txt xxx@qq.com”

 

    

2.sendmail

        普通邮件发送方式同mail类似

        带附件的邮件发送方式:            

写道
1、用uuencode 将附件编码为文本形式
uuencode 附件 希望在邮件中使用的附件名 > 附件文本文件
2、连接邮件正文文件和附件文本文件
cat 邮件正文文件 附件文本文件 > 正文附件联合文件
3、发送该邮件
sendmail -s "你想使用的邮件标题" 收信人email地址 < 正文附件联合文件
示例:
我的邮件正文文件是 message.txt,想发送的附件名字是 attachment.tar.gz,附件文本文件取名为attachment.txt,正文附件联合文件取名为combined.txt,以“测试”为邮件标题发信给Sam@test.com
uuencode attachment.tar.gz attachment.tar.gz > attachment.txt
cat message.txt attachment.txt > combined.txt
sendmail -s "测试’ Sam@test.com < combined.txt

 

 

3.mutt

写道
Muttmutt_button.gif是个功能强大的email 程序,引用一段别人的话:

"你也许听说过这句话?这不是危言耸听,我还没有遇到一个令我满意的 email 程序,直到我遇到 mutt。它不是图形界面的,但是它非常强大和方便。我曾经把它忽略,但是后来我发现其它 email 程序都有某种我不喜欢的怪毛病。最后我选择了 Mutt。"

我在这里只想介绍一下怎样使用Mutt在Linux/Unix下发送邮件:
以下是命令示范:

[root@jumper root]# mutt -s "this is a test mail" eygle@itpub.net -a a.c < /etc/hosts

其中:
s—主题
a—附件
最后追加的是邮件内容

这样就可以发送了。

如果想要了解更多关于Mutt的内容,可以访问http://www.mutt.org

 

 

 

Linux系统中,可以利用`cron`配合邮件工具如`mailx`或`sendmail`等实现实现定时发送邮件的功能。以下是详细步骤: ### 步骤一:配置邮件服务器 首先需要安装并设置好能够发信的邮件程序,例如 `mailutils`(包含 mail/mailx 命令) 或者直接通过 SMTP 配置。 ```bash sudo apt-get install mailutils # 对于Debian/Ubuntu系列 # 或者对于CentOS/RHEL 使用下面命令: sudo yum install mailx ``` 然后测试是否能成功发出一封简单的邮件: ```bash echo "这是一封测试邮件内容" | mail -s "这是标题" 收件人邮箱地址@example.com ``` 如果对方正常收到,则说明环境已准备好继续下一步。 ### 步骤二:创建脚本文件用于构造复杂邮件任务 你可以编写Shell脚本来生成更复杂的电子邮件体、附件等内容,并将此过程自动化安排到计划任务当中去运行。比如新建一个叫做 send_email.sh 的 shell 脚本文件: ```bash #!/bin/bash TO="收件箱@example.com" SUBJECT="每日报告 $(date +%Y-%m-%d)" BODY=$(cat <<EOF 尊敬的用户, 您好! 这里是今天的自动日报... 更多具体内容请查看附件文档。 感谢您的关注! 最好的问候, 系统管理员团队 EOF ) ATTACHMENT="/path/to/daily_report.pdf" (echo "$BODY"; uuencode $ATTACHMENT daily_report.pdf ) | mail -s "$SUBJECT" "$TO" ``` 记得赋予该脚本可执行权限: ```bash chmod +x /full/path/to/send_email.sh ``` ### 步骤三:添加crontab规则设定时间间隔触发上述脚本 打开用户的 crontab 编辑界面(若需root权限则切换至对应账户再操作): ```bash crontab -e ``` 按需求输入类似这样的行来每天凌晨4点整调度一次脚本:(可以根据实际需求调整频率和时刻) ```plaintext 0 4 * * * /full/path/to/send_email.sh >> /var/log/cron.log 2>&1 ``` 保存退出即可生效!每次作业完成后会记录日志供后续排查问题使用。 --- 以上就是在 Linux 下完成定期寄
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值