AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 433374
Accepted
Toqeer
Toqeer
Asked: 2012-10-01 00:39:06 +0800 CST2012-10-01 00:39:06 +0800 CST 2012-10-01 00:39:06 +0800 CST

通过远程 smtp 服务器中继 PHP 邮件 [重复]

  • 772
这个问题在这里已经有了答案:
9 年前关闭。

可能重复:
如何使用远程 SMTP 配置 php.ini?

我们有一个在 Linux 上运行的 php 应用程序,它向那里的用户发送电子邮件。目前,它的设置(如 php.ini)配置为通过本地 sendmail 服务器发送,但我们为该域的组织设置了单独的邮件服务器。我想通过该远程 smtp 服务器发送 php 应用程序电子邮件,以便这些电子邮件可以具有正确的 SPF 记录并通过 DKIM 签名。

但是我在 php.ini 中看不到这样的选项来指定远程主机地址以将电子邮件转发到它,它仅适用于 Windows。

我看到一些建议的帖子,phpMailer但我找不到如何配置它,以便我们所有的 php 应用程序都可以通过我们的远程 SMTP 发送。

linux
  • 2 2 个回答
  • 8908 Views

2 个回答

  • Voted
  1. mschuett
    2012-10-01T00:57:17+08:002012-10-01T00:57:17+08:00

    请先搜索,之前有人问过(例如在如何使用远程 SMTP 配置 php.ini?)。

    PHPmail()函数始终使用 sendmail(在 Linux/Unix 上)。无法通过 php.ini 更改它。剩下两个其他方法:

    • 对于单个应用程序,您可以将对mail()函数的所有调用替换为对替代库(例如 PHPMailer)的调用。
    • 作为更通用的解决方案,您可以配置本地 sendmail(或提供sendmail命令的任何程序)来做正确的事情,即将域的邮件服务器设置为智能主机。
    • 2
  2. Best Answer
    adamo
    2012-10-01T13:24:35+08:002012-10-01T13:24:35+08:00

    我会安装nullmailer并将其配置为将电子邮件转发到您的中继服务器。您使用的 linux 发行版很可能有 nullmailer 包,因此 sendmail 二进制文件(与命令行兼容)安装在正确的位置。

    如果您不想安装 nullmailer,也可以使用 sendmail。如果你愿意,我会更新答案。

    更新:

    如果您想在 sendmail 下执行此操作,您有多种选择:

    (1) 在 sendmail.mc 中定义 SMART_HOST 为您的邮件中继服务器:

    define(SMART_HOST, `smtp:[relay.server]')dnl
    

    (2) 您可以使用FEATURE(nullclient)。

    (3)修改规则集0来做到这一点。在 sendmail.mc 中添加以下行:

    LOCAL_RULE_0
    R$* < @ $* . > $*       $#esmtp $@ [relay.server] $: $1 < @ $2 . > $3
    

    不要复制粘贴上面的代码片段,因为左侧与右侧是用制表符而不是空格分开的。

    完成编辑 sendmail.mc 后,您需要编译 sendmail.cf 并重新启动 sendmail。在 Debian 中,这是通过运行sendmailconfig. 在 CentOS 中,这是通过运行/etc/mail/make后跟service sendmail restart.

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve