apache sendmail:尝试将用户“发件人”地址从 apache 更改为域帐户

apache sendmail:尝试将用户“发件人”地址从 apache 更改为域帐户

如果我问的问题已经得到解答,我深表歉意,但我的问题实际上并不是我还没有找到答案。事实上,我已经找到了六种不同的“解决方案”,尝试了所有方案,以各种组合,但始终没有成功。

目标

我要做的就是更改所有从以下地址发送的电子邮件的信封“发件人”地址[电子邮件保护][电子邮件保护], 总是。


我已经做了什么

我在 CentOS 5.5 上运行 Apache、PHP 和 sendmail,[电子邮件保护]。我们的 SMTP 服务器位于 192.168.0.4。该域的电子邮件帐户均位于@域名.org

我已经成功设置了“智能主机”,使用此行发送邮件文件:

define(`SMART_HOST', `192.168.0.4')dnl

然后我设置了伪装,希望这能解决这个问题。我在 .mc 文件中有以下内容:

FEATURE(`masquerade_entire_domain')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`allmasquerade')dnl
MASQUERADE_AS(`domain.org')dnl
MASQUERADE_DOMAIN(`domain.org.')dnl
MASQUERADE_DOMAIN(`localhost.localdomain.')dnl

这会重写“收件人”地址,但不会重写“发件人”地址。从命令行测试:

sendmail -v [email protected]

始终显示本地用户(在本例中或我的本地用户帐户)。

我读到过“sendmail”命令有时会绕过伪装。然而,使用“mail”命令也会产生同样的结果。

此后,我探索过几种“解决方案”,包括:

  • 邮寄表
  • 虚拟用户表
  • FEATURE(`accept_unresolvable_domains')dnl
  • LOCAL_DOMAIN(`localhost.localdomain')dnl
  • FEATURE(`genericstable')dnl
  • /etc/邮件/访问文件
  • /etc/mail/本地主机名文件
  • /etc/mail/受信任用户文件

一切都没有影响。


我尝试过的最后一件事

因此,我决定换个方向,尝试通过 PHP 设置信封“发件人”地址,使用以下配置之一:/etc/php.ini或添加-Fmail() 函数的参数或发送邮件命令。

如果我运行这个命令:

sendmail -v -f [email protected] [email protected]

我收到此错误/var/log/邮件日志

Mar 30 08:56:16 localhost sendmail[24022]: p2UCuE8w024022: [email protected], size=5, class=0, nrcpts=1, msgid=<[email protected]>, relay=user@localhost
Mar 30 08:56:19 localhost sendmail[24022]: p2UCuE8w024022: [email protected], [email protected] (500/502), delay=00:00:05, xdelay=00:00:03, mailer=relay, pri=30005, relay=[192.168.0.4] [192.168.0.4], dsn=5.1.1, stat=User unknown
Mar 30 08:56:19 localhost sendmail[24022]: p2UCuE8w024022: p2UCuE8x024022: DSN: User unknown
Mar 30 08:56:23 localhost sendmail[24022]: p2UCuE8x024022: [email protected], delay=00:00:04, xdelay=00:00:04, mailer=relay, pri=31029, relay=[192.168.0.4] [192.168.0.4], dsn=2.0.0, stat=Sent (Ok: queued as B5E2E40E0A2)

这基本上是一个“用户未知” 550 错误。


帮助

请帮忙。我需要更改什么?我应该从 sendmail.mc 文件重新开始吗?它包含大量配置选项,经过几天的尝试。为什么通过命令行更改信封“发件人”地址会产生“用户未知”错误?

答案1

我已经弄清楚了如何使用 -f 参数。我开始从头开始修改 sendmail.mc,只包含了 MASQUERADE_AS 属性。

原来是我们网络的防火墙拒绝了。我在防火墙中添加了一个例外。...

编辑:我已使用 POSTFIX 解决了这个问题。忘记 sendmail...

相关内容