vim替换^M字符

Publish: November 20, 2013 Category: Shell No Comments

1、使用命令:$ dos2unix myfile.txt

2、使用vi替换功能:

:%s/^M//g

注意:^M要使用"CTRL+V CTRL+M"生成,而不是直接键入"^M"    

dkim技术说明

Publish: November 19, 2013 Category: 默认分类 No Comments

引用:DKIM技术说明

DKIM全称叫“Domain Key Identified Mail”,是yahoo的domainkey技术跟cisco的identified mail合起来的产物,有标准rfc4871、rfc5762

它的目的主要用来保证邮件的完整性,避免钓鱼。与SPF一样也做Sender authentication,但DKIM做的比SPF更复杂,DKIM会对邮件头及正文进行签名,没有私钥下,邮件被假冒或篡改后,就会与邮件头签名不一致,从而防止这样的情况。

关于DKIM与SPF两者的区别可以看这里http://greatmail.com/blog/email-hosting/sender-authentication-with-dkim-and-spf/

DKIM签名是先对内容(BODY)部分HASH,然后把这个BODY HASH放到HEADER里面,再对头部做签名。头部也不是所有字段都要签名,只有一些常用的字段,或者比较有意义的。像Received、Return-path、Bcc、Resent-bcc、DKIM-Signature、Comments、Keywords这样的字段一般不签名,FROM则是必须被签名(rfc4871 5.5 Recommended Signature Content)

来看一个具体的DKIM签名:
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=bagstown.com; h=
from:to:subject:date:content-type:content-transfer-encoding; s=
myselector; bh=mA7x1yoBF/78n2Ntp8z3OA+iGXE=; b=……

阅读剩余部分...

给源码包打rpm包

Publish: November 8, 2013 Category: Shell,C/C++ 657 Comments

以打libvmime为例子,从官网上下下来的libvmime的为源码包的形式,我们需要把它打成rpm包:

1、下载源码包: libvmime-0.9.1.tar.bz2

2、由于我们需要的包的格式为: *.tar.gz,所以我们先解压再压成我们需要的格式:

解压:
tar xjvf libvmime-0.9.1.tar.bz2

再压缩:
tar czvf libvmime-0.9.1.tar.gz libvmime-0.9.1/
cp libvmime-0.9.1.tar.gz /usr/src/rehat/SOURCES/

3、写spec文件:libvmime.spec:

阅读剩余部分...

使用vmime解析邮件

Publish: November 5, 2013 Category: C/C++ No Comments

vmime是一个比较好的邮件编、解码的库,它有比较完整的文档,还支持smtp,pop,imap协议,支持sasl加密。

地址在这里:http://www.vmime.org/

vmime安装:

tar xzvf libvmime.tar.gz
cd libvmime
./configure --enable-platform-posix --disable-sasl \
    --disable-tls --disable-messaging-proto-pop3 \
    --disable-messaging-proto-smtp \
    --disable-messaging-proto-imap \
    --disable-messaging-proto-maildir \
    --disable-messaging-proto-sendmail \
    --disable-platform-windows
make
make install
/sbin/ldconfig

example代码:https://github.com/kyosold/mailparse

编译方法:
gcc -g -o example example.c ./libmailparse.a -I./ -lvmime -liconv