在PHP中发送安全电子邮件的最佳方式是什么?

时间:2010-07-06 15:32:25

标签: php security email

我编写了一个PHP脚本,每周一使用cron运行。在这封电子邮件中,我附上了一份包含敏感信息的XLS文档。保护此电子邮件的最佳方法是什么?我可以在XLS文档上设置密码吗?我可以加密电子邮件,只允许正确的接收者有权打开它吗?

我正在使用PHPExcel创建XLS文档,以防万一。

感谢您的帮助!
大都会

3 个答案:

答案 0 :(得分:5)

加密电子邮件是最安全的方式恕我直言。如果您可以控制服务器,则可以安装GPG并从命令行调用它以使用密钥加密电子邮件。缺点是收件人需要一个插件到他们的电子邮件客户端和公钥来解密消息。

一种稍微不那么安全的方式,但最终用户更容易发送包含该人员下载XLS文件链接的普通电子邮件。然后将XLS文件存储在密码保护区域后面。使用HTTPS加密页面和下载。此外,您可以使用MD5或更好的SHA256创建一次性HASH,该脚本由PHP脚本生成并存储在与文件相关的数据库中。将其作为链接参数发送并使其过期。这使得非预期人员更难以访问该链接。

第二种方法还具有可在允许您执行SSL的任何主机上使用的优点。无需对服务器进行特殊访问。

答案 1 :(得分:1)

您可以使用GPG或S / MIME使用收件人的公钥/证书加密此电子邮件。

这可能是一个很好的起点:http://www.php.net/manual/en/function.openssl-public-encrypt.php

答案 2 :(得分:1)

PHPExcel不支持密码(尚未)和AFAIK passwords on Excel files are not 100% secure(只有Office 2007+擅长保护文件)。最好的方法是在将文件附加到电子邮件之前对文件进行加密,然后在收到后对其进行解密。如果您可以在PHP安装(GnuPG)下使用see this对其进行加密,则会为ThunderbirdSeamonkey邮件客户端添加一个名为Enigmail的插件,该客户端会自动执行解密过程。