我有一台LAMP(在DigitalOcean上),我想向我的网络邮件Provider (它支持通过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上的一盏灯过go 似乎对PHPMailer有本机支持,但现在似乎不是这样了,以下代码

   //Send the email
    $mail = new PHPMailer(true);
    $mail->Host = "mailcluster.loopia.se";
    $mail->Port       = 465;

给出了以下错误

未捕获错误:未找到类"PHPMailer"

因此,除非我需要在我的应用程序(?)中包含/需要一些对PHPMailer库的引用,否则MarketPlace LAMP似乎不再有它了.我想我可以从PHPMailer repo?https://github.com/PHPMailer/PHPMailer/tree/master下载相关文件(PHPMailer、SMTP和异常文件)并放入我的应用程序目录中.

Sendmail

看看phpinfo()Apaches已经安装了Sendmail,但我不认为这提供了对我的邮箱进行SSL身份验证的选项?

Postfix

我的服务器已经安装了Postfix 3.4.10,这里可以走这条路吗?似乎Postfix是一种将我的服务器变成邮件客户端(?)并做一些与我想要的不同的事情的方法,但也许它也提供了这个功能?正如我提到的,如果这可以在不加载任何其他包或库的情况下完成,这将是该应用程序的最佳 Select .

推荐答案

DigitalOcean托管通常允许shell 访问(通过SSH),因此您可以使用Composer安装phpmarer包

或者,您也可以下载phpmail(压缩文件),将其解压缩,然后通过FTP上传目录

我相信这两个都可以(Composer安装或上传),但Composer对大多数用户来说会更容易.但是,如果您的DO订阅不允许SSH访问,则可能会强制您使用FTP方式

对于您的情况,您正在谈论发送邮箱(SMTP),当然,如果您使用SSL/TLS,则在安全性方面会更好.安装phpmailer,然后将其设置为使用当前的外部SMTP服务器,并使用SSL/TLS

另一方面,"sendmail"和"postfix"是两个不同的邮件服务器守护进程.它们都允许您发送/接收邮箱(使用或不使用SSL/TLS).一台服务器通常可以有多种用途,因此您可以使用一台Linux/Unix服务器(在您的情况下是这样)同时作为Web服务器、MySQL服务器、ftp服务器和邮件服务器等.

Php相关问答推荐

无法添加ProxyClass__setInitialized()上的忽略

在WooCommerce管理订单列表中显示项目总权重

在AJAX请求后,Laravel重定向.(不允许使用方法)

免费送货柜台,考虑到折扣码

列出所有WooCommerce处理订单中的产品数量,SKU和品牌

在WooCommerce获取所有具有全球产品属性品牌的简单产品

上传WordPress模板中的翻译文件(.mo和.po)

fpm-php + nginx + POST数据

如何用Ubuntu 22.04在VSCode中启用XDebug

将数据推入所有子数组条目

$this->;db->;update();CodIgnitor中的功能不工作

显示自定义 Laravel 9 公共属性的错误

.htaccess 重写规则问题

AWS S3:当对象名称包含 % 时复制对象失败并出现错误 - 无效的复制源编码

如何在WooCommerce中为访客购买者分配自定义客户代码

如何设置Mailersend PHP API 模板变量?

Laravel使用另一张表进行关联查询

在 PHP 中验证签名

Laravel:ArgumentCountError: 函数 App\Mail 的参数太少

一个php应用程序可以实例化多个RNG吗