使用 msmtp 通过终端发送邮件工作正常,但不适用于 php mail()

2024-03-31

最近我在运行 kubuntu 桌面的 ubuntu 12.04 服务器上安装了 msmtp。 msmtp 的安装工作正常,我什至可以使用 gmail 的 smtp 服务器通过终端发送邮件。

我的问题是,虽然可以通过终端发送邮件,但它仍然无法使用 php 邮件。我尝试过使用 phpmail()功能,但我从未收到任何电子邮件。

我检查了 apache 错误日志(/var/log/apache2/error.log),但它们是空的。
有谁知道如何解决这一问题?如果需要任何进一步的信息,请说出来:)

执行php脚本时也没有出现错误。

下面的代码与已发送的邮件相呼应,但我从未收到过电子邮件:

<?
if(mail( '[email protected] /cdn-cgi/l/email-protection', 'Test mail from localhost', 'Working Fine.'))
{
    echo 'Mail sent';
}
else
{
    echo 'Error. Please check error log.';
}
?>

对我来说,原因是 msmtp 配置文件的文件所有权和权限不正确。

当我尝试从 CLI 运行 PHP 邮件发送脚本时root, 有效。但是将用户切换到www-data并尝试再次运行该脚本(也在 CLI 上)失败,并显示以下消息:

msmtp: /etc/msmtprc: contains secrets and therefore must be owned by you
msmtp: /etc/msmtprc: contains secrets and therefore must have no more than user read/write permissions

通过向 Apache(或 Nginx 等)发出 HTTP 请求来触发 PHP 脚本将产生相同的结果(因为 msmtp 将由www-data user).

假设您的 msmtp 配置文件位于/etc/msmtprc,这些命令将解决这些问题:

chown www-data:www-data /etc/msmtprc
chmod 600 /etc/msmtprc

在进行这些更改之前,请考虑这些新权限是否适合您的情况(例如,是否存在安全隐患?)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 msmtp 通过终端发送邮件工作正常,但不适用于 php mail() 的相关文章

  • 多单元元素的 FPDF 高度

    我使用 FPDF 库将一些文档文件导出为 PDF 一个文档包含一系列具有不同长度的字符串 我将所有字符串打印为 pdf gt MultiCell 现在 我希望该 MultiCell 的当前高度具有相同的行间距 以防它们只有一行或多行 代码示
  • Imagick setColor 不适用于 php

    我尝试将所有像素设置为黑色 但它不起作用 我得到与原始图像相同的图像 这是我的代码 image new Imagick DIR image new jpg i 0 j 0 while i lt 100 j 0 while j lt 100
  • Web.config 将所有路径重定向到index.php - 不起作用

    我主要使用 Apache 和 htaccess 但我目前正在开发一个托管在 Windows 服务器上的网站 Web config 给我带来了很多问题 我试图将所有 URL 请求重定向到 index php 以便 PHP 脚本可以解析 URL
  • PHP SNMP - 找不到模块

    我已启用 SNMP 模块并尝试使用该模块中的功能 我已将 MIBDIRS 环境变量设置为我的 mib 所在的位置 但我仍然收到这些 找不到模块 警告 Cannot find module IP MIB At line 0 in none C
  • nginx + WordPress:SFTP + 自动更新的适当用户/文件权限?

    I used this http wordimpress com aws ec2 rds s3 cloudfront nginx wordpress tutorial roundup 在 Ubuntu VPS 上安装 nginx 和 Wor
  • 如何在变量中存储包含哈希标记的完整 url?

    我正在尝试存储一个网址 例如 http localhost pro print index php page home http localhost pro print index php page home 在变量中 但我找不到执行此操作
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • PHP - 存储和计算无线电输入的总分

    我设计了一个基于网络的小型系统 其中有一个学校评估表 可以向可以访问该系统的特定用户询问一些问题 并且输入将是单选类型 1或2或3或4 该代码正在运行 可以将输入插入数据库 但我不知道计算总分并将其存储在数据库中的正确查询 这是当前正在运行
  • 构建错误:致命错误:pcre.h:没有这样的文件或目录

    我刚刚安装完 Ubuntu 13 10 我想尝试 Phalcon 当我构建源代码 phalcon so 时 出现以下错误 from home fabrice Downloads cphalcon build 32bits phalcon c
  • 如何在不发送电子邮件的情况下检查 smtp 服务器? [复制]

    这个问题在这里已经有答案了 我有一个 Web 应用程序 用户可以设置 SMTP 服务器信息 服务器 主机 SMTP 端口 用户名 密码 电子邮件地址 使用的 SSL 当用户设置信息时我需要验证服务器而不发送电子邮件并检查smtp信息是否有效
  • PHPUnit RabbitMQ:为创建连接函数编写测试

    我面临以下问题 我编写了一个函数 根据所需参数创建连接对象 AMQPConnection 现在我想编写相应的单元测试 我只是不知道在没有运行 RabbitMQ 代理的情况下如何做到这一点 这是有问题的函数 public function g
  • Blade @if 中的 Laravel 会话变量

    当我尝试使用 Laravel Session 在刀片中设置 JS 变量来刷新一些数据时 我在 Laravel 4 2 中遇到了一些奇怪的情况 这很简单 我不知道我错过了什么 目标 在用户注册后立即触发 Javascript 网站浏览 方法
  • Zend 框架将字母“f”输出到我的页面上

    我已经下载了 Zend 框架稳定版本 我相信是 1 11 上传到我的服务器 并将其添加到我的 php 包含路径中 我的目标是使用 Feed 和 Feed Writer 模块来处理一些 RSS 和 Atom 的繁重工作 问题是 每当我包含 F
  • 混合数组和对象

    我有一个像这样的数组 Array count gt 2 0 gt stdClass Object term id gt 3109 name gt Aliens Colonial Marines slug gt aliens colonial
  • Codeigniter:重置表单值

    在我看来 我想要做的是在用户成功注册后清除表单字段 这里一切正常 即用户正在注册 成功消息正在向用户显示 除了我想要做的是清除表单字段的值 我正在使用这个 Clear the form validation field data so th
  • TCPDF UTF-8 符号未显示

    我使用最新的 TCPDF 版本 5 9 但在编码方面遇到一些奇怪的问题 我需要立陶宛语语言符号 例如 但只能得到其中的一小部分 其他的还是这样 所以我该怎么做 我使用默认的 times 字体 它带有 TCPDF 下载 任何帮助 将不胜感激
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • 如何在 Python 中包含 PHP 脚本?

    我有一个 PHP 脚本 news generator php 当我包含它时 它会抓取一堆新闻项并打印它们 现在 我在我的网站 CGI 中使用 Python 当我使用 PHP 时 我在 新闻 页面上使用了这样的内容 为了简单起见 我删掉了这个
  • 为什么我不能在 TCPDF 表中使用 č,ć,đ 图表?

    我正在为我的网站构建一个 tcpdf 文件 该 tcpdf 文件中有一个包含一些数据的表格 但我无法使该章程正常工作 对于编码 我使用 windows 1250 宪章女巫不起作用 我已经尝试过 utf 8 但仍然没有得到这个章程 tcpdf
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t

随机推荐