代码之家  ›  专栏  ›  技术社区  ›  Metropolis

用PHP发送安全电子邮件的最佳方法是什么

  •  0
  • Metropolis  · 技术社区  · 14 年前

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

    我正在使用phpexcel创建XLS文档,以防有帮助。

    谢谢你的帮助!
    大都市

    3 回复  |  直到 14 年前
        1
  •  5
  •   Cfreak    14 年前

    加密电子邮件是最安全的方法。如果你有服务器的控制权,你可以安装gpg并从命令行调用它,用一个密钥加密电子邮件。缺点是收件人需要一个电子邮件客户端插件和公钥来解密邮件。

    一个稍微不安全但对最终用户来说更容易的方法是发送一封包含链接的普通电子邮件,供用户下载XLS文件。然后,XLS文件存储在密码保护区之后。使用https加密页面和下载。此外,还可以使用MD5或更好的sha256创建一次性哈希,该哈希由PHP脚本生成,并存储在与文件相关的数据库中。将其作为链接参数发送并使其过期。这使得无意中的人更难访问链接。

    第二种方法还有一个好处,就是可以在任何允许您执行SSL的主机上使用。无需对服务器进行特殊访问。

        2
  •  1
  •   Bruno    14 年前

    您可以使用gpg或s/mime使用收件人的公钥/证书加密此电子邮件。

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

        3
  •  1
  •   AlexV    14 年前

    phpexcel还不支持密码和afaik passwords on Excel files are not 100% secure (只有Office2007+擅长保护文件)。最好的方法是在将文件附加到电子邮件之前对其进行加密,然后在收到邮件后对其进行解密。如果你能用 GnuPG 在php安装下( see this )有一个插件 Thunderbird Seamonkey 已调用邮件客户端 Enigmail 这将使解密过程自动化。