uuencode + uudecode + base64

本文介绍了当企业限制员工个人电子邮件收发时,如何利用Unix服务器上的mailx工具来发送邮件及附件的方法,包括使用uuencode和base64进行文件编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于安全理由,公司封闭了我个人的e-mail账户对外的收发功能,以后在公司往自己的邮箱发一些有价值的东西就麻烦一些了,如果,个人PC的外网web mail/smtp/pop3连接也断了就更是雪上加霜了。呵呵,不过,我暂时还是有办法应对的。

 

公司有几台unix服务器是随时要监控作业运行状况的,如果发现出了点问题就通过e-mail通知相关负责人。幸好,目前其连接状况还是对外开放的,也就是说,在服务器上还是可以通过mailx发邮件到我自己的邮箱的。

 

不带附件的邮件可以这样发:cat readme | mailx -s "just a test" your@mail.box.com

 

带附件的邮件,需要uuencode支持:(echo "Save the attachment and run uudecode to get it"; uuencode destroy_1.0.0.tar.gz destroy_1.0.0.tar.gz) | mailx -s "destroy 1.0" your@mail.box.com

 

uuencode可以将二进制文件转换为文本文件,转换后的文件可以通过纯文本e-mail进行传输,在接收方对该文件进行uudecode,即将其转换为初始的二进制文件。

 

如果邮件服务提供商仅仅将该附件看作是普通的文本文件,而不提供uudecode支持,那么在Unix下,可以执行uudecode将其还原:uudecode -o destroy_1.0.0.tar.gz load_from_server.txt,在Windows下就更简单了,可以把文件扩展名改为uue,然后用Winzip解开即可。

 

而Linux下默认是没有uuencode和uudecode的(当然也可以在网上找到源代码自行编译)。替代办法是base64,不过RHEL自带的base64在解码时有点问题,建议使用以下链接的跨平台base64编解码程序。

 

http://download.youkuaiyun.com/source/2931432

 

利用base64从服务器发送带附件的邮件可以这样:base64 binary_file | mailx -s "just a test" your@mail.box.com

 

把收到的邮件正文内容保存为mail_body,在本地解码:base64 -d mail_body > binary_file

 

就像uuencode那样,base64可以把二进制文件的每3个字节转为4个字节的文本,转换后的每字节的字符集只有64个字符,具体算法介绍网上很多地方都有,这里就不展开了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值