【小蜗牛清心之作
 
首先简要说一下uuencode/uudecode编解码:
 
uuencode把二进制文件转化成为可读ASCII文件,适合email传输。编码后的文件比原文件要大35%左右,内容第一行一般是"begin, 644, 文件名",最后一行是"end",中间的内容都以"M"开头,满61字符换行。
 
[root@pps ~]# uuencode snail.jpg snail.jpg
begin 644 snail
M_]C_X``02D9)1@`!`0$`2`!(
``#_VP!#``@&!@<&!0@'!P<)"0@*#!0-#`L +
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+#`Q-#0T'R<
Y/3@R/"XS -#+_
...
...
M)0$Q]MY$;,0)Y^IK>I0&$<,46_#C1-^?:H&ZSI2@%*4H!2E*`4I2@%*4H!2E
.*`4I2@%*4H!2E*`__]D `
`
end
 
【注意】 如果使用-m参数,则使用base64编码格式
 
上面命令行参数第一个snail.jpg是需要编码的文件名,第二个snail.jpg是编码后的文件名(解码时使用)。我们可以重定向文件,对比一下编码前后的大小:
[root@pps ~]# uuencode snail.jpg snail.jpg > snail.jpg.uue
[root@pps ~]# ls -l snail.jpg snail.jpg.uue
-rw-r--r-- 1 root root 2444 03-02 15:09 snail.jpg
-rw-r--r-- 1 root root 3396 04-02 10:17 snail.jpg.uue
 
3396/2444=1.39

新建tmp目录,把snail.jpg.uue拷贝进去,用uudecode对文件解码:
[root@pps tmp]# uudecode snail.jpg.uue
[root@pps tmp]# ls
snail.jpg  snail.jpg.uue
 
解码后的文件名,就是前面编码时输入的第二个"snail.jpg”参数,文件的权限为644,也就是编码时默认的644。
 
好了,下面举例说说用mail命令结合uuencode快速发送email附件:
[root@pps software]# ls -lh jdk-6u12-linux-i586.bin
-rwxr-xr-x 1 root root 77M 01-21 04:35 jdk-6u12-linux-i586.bin
[root@pps software]# uuencode jdk-6u12-linux-i586.bin jdk-6u12-linux-i586.bin | mail -s "Big Attachement" [email]hoho@hoho.com[/email]
 
是不是很简单?这里发了一封主题为“Big Attachement”的邮件,内容为空,有一个大附件。如果你经常使用Linux操作系统的话,会发现这样很方便,不需要将文件取回Windows然后再用Outlook,Foxmail等客户端软件发送。当然,在Linux下使用mail需要sendmail的支持。
 
在Winows下用Outlook,Foxmail等客户端能自动识别经过uuencode编码的附件。如果附件被收取到Linux/Unix等系统下,如果Linux下的MUA或者客户端不识别,可以手工处理邮件提取相应的部分,用uudecode解码即可。
 
【注意】这里不能使用-m参数进行base64编码,否则客户端软件无法识别附件。
------------------------------------------------------------------------------------------
赵小蜗牛
QQ: 755721501
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!