我有一个 LAMP(在 DigitalOcean 上),想要通过我的网络邮件提供商(支持基于 SSL/TLS 的 IMAP)进行身份验证并发送电子邮件。我已经使用各种 symfony 扩展在 symfony 应用程序中多次执行此操作,但这是一个平面 PHP 应用程序,我希望使其尽可能轻量级。以下哪个选项会给我的应用程序带来最少的开销/侵入性最小?
PHPMailer
根据此(旧)页面https://www.digitalocean.com/community/questions/how-to-configure-lamp-with-ubuntu-to-send-email-from-php-through-office365它似乎 DigitalOcean 上的 LAMP 曾经对 PHPMailer 有原生支持,但现在似乎不再是这样了,以下代码
//Send the email
$mail = new PHPMailer(true);
$mail->Host = "mailcluster.loopia.se";
$mail->Port = 465;
给我以下错误
未捕获错误:未找到“PHPMailer”类
所以除非我需要在我的应用程序中包含/要求对 PHPMailer 库的一些引用(?),否则市场 LAMP 似乎不再有它了。我想我可以从 PHPMailer 存储库下载相关文件(PHPMailer、SMTP 和异常文件?https://github.com/PHPMailer/PHPMailer/tree/master)并放入我的应用程序目录中。
发送邮件
查看 phpinfo() Apache 已安装 Sendmail,但据我所读,我认为这没有提供对我的邮箱进行 SSL 身份验证的选项?
后缀
我的服务器已经安装了 Postfix 3.4.10,这是一种方法吗?看来 postfix 是一种将我的服务器变成邮件客户端(?)并做一些与我所追求的不同的事情的方法,但也许它也提供了该功能?就像我提到的,如果这可以在不添加任何其他包或库的情况下完成,那么这将是该应用程序的最佳选择。
DigitalOcean 托管通常允许 shell 访问(通过 SSH),因此您可以使用 Composer 来安装 phpmailer 软件包
或者,您可以下载 phpmailer(zip 文件),解压,然后通过 FTP 上传目录
我确信两者都可以(composer 安装或 FTP 上传),但 Composer 对于大多数用户来说会更容易。但是,如果您的 DO 订阅不允许 SSH 访问,那么您可能被迫使用 FTP 方式
对于您的情况,您正在谈论发送电子邮件(SMTP),当然,如果您使用 SSL/TLS,那么在安全性方面会更好。安装 phpmailer,然后您可以将其设置为使用当前的带有 SSL/TLS 的外部 SMTP 服务器
另一方面,“sendmail”和“postfix”是两个不同的邮件服务器守护进程。它们都允许您发送/接收电子邮件(带或不带 SSL/TLS)。一台服务器通常可以用于多种用途,因此您可以使用 linux / unix 服务器(在您的情况下是 DO)作为 Web 服务器、mysql 服务器、ftp 服务器和邮件服务器