处理良好隐私(PGP)和电子邮件的工具。
pgp-mime的Python项目详细描述
用于构造和发送pgp/mime电子邮件的python模块和工具。
pgp_mime模块使构造和分派有符号的 和/或使用PGP和RFC 3156加密的电子邮件。它使用GnuPG (通过gpgme-tool)执行加密。
安装
套餐
gentoo
我已经为Gentoo打包了pgp-mime。你需要layman和 我的wtk overlay。安装时使用:
# emerge -av app-portage/layman # layman --add wtk # emerge -av dev-python/pgp-mime
依赖性
pgp-mime是一个简单的包,在外部没有外部依赖项 python 3标准库。有许多GnuPG包装纸 对于pythonout there,但它们都不够成熟/稳定 值得安装。相反,我们使用pyassuan模块来 通过管道或插座与gpgme-tool交谈。如果这不起作用 对于您,只需替换pgp_mime.crypt模块即可处理 密码学。
用法
随着我对python越来越有经验,pgp mime已经长大了。 当前的接口要简单得多,而且 显示如何使用每个函数的docstrings。
如果您正在寻找更高级别的示例,pgp mime将包含 命令行脚本send-pgp-mime.py,允许您发送 来自命令行的签名和/或加密电子邮件。我推荐你 将gpg2与mywrappers and pinentry program一起使用,以便 从命令行输入。以下是您如何通过邮件签名 班级成绩:
$ FROM="From: Rincewind <rincewind@uu.edu>" $ head -n2 grades Twoflower <tf@isa.ae.cw>|9 Eric Thursley <et@pseudopolis.net>|10 $ while read LINE; do STUDENT=$(echo "$LINE" | cut -d '|' -f 1) GRADE=$(echo "$LINE" | cut -d '|' -f 2) HEAD=$(echo -e "$FROM\nTo: $STUDENT\nSubject: Grades") BODY=$(echo -e "$STUDENT,\n\nYou got a $GRADE.\n\nGood job.") send-pgp-mime.py -H <(echo "$HEAD") -B <(echo "$BODY") --mode sign done < grades
如果你能说服你的学生拿到PGP钥匙,你也可以 通过将--mode sign更改为--modesign-encrypt来加密他们的成绩。
当然,如果你对学生和学生的成绩感兴趣, 您可能还对我的pygrader包感兴趣,它使用 引擎盖下的PGP哑剧。
配置SMTP连接
pgp mime支持两种发送消息的方法(通过 pgp_mime.mail)。它可以调用系统的sendmail 等效,或使用smtplib直接连接到SMTP服务器。 因为我认为smtp会更常见,所以您可以很容易地配置 通过~/.config/smtplib.conf:
建立SMTP连接[smtp] host: smtp.mail.uu.edu port: 587 starttls: yes username: rincewind password: 7ugg@g3
所有这些字段都是可选的。host默认为localhost 而port默认为25。如果没有给出username,我们就不会 连接后尝试登录到SMTP服务器。
如果starttls是no或未给定,则smtp事务发生在 纯文本(尽管底层电子邮件仍将加密)。 但是,如果将username(设置为登录),pgp mime将需要 STARTTLS保护您的密码不被监听。
测试
使用nose:
运行内部单元测试$ nosetests --with-doctest --doctest-tests pgp_mime
如果python-3版本的nosetests不是 系统,您可能需要尝试以下操作:
$ nosetests-3.2 --with-doctest --doctest-tests pgp_mime
许可证
此项目在GNU General Public License Version 3或更高版本下分发。