我如何允许 sendmail 发送至任何地址?

我如何允许 sendmail 发送至任何地址?

更新 2010 年 10 月 21 日 5p:好的,所以发送邮件确实有效,但不能发送邮件到[电子邮件保护]来自此框的邮件没有。wtw3.com 的 A 记录指向开发框,但 MX 记录解析到 Google 的服务器。这是否导致了问题?我该如何判断?(下面是详细的邮件输出)

[root@dev ~]# mail -v [email protected]
Subject: Test
Test
Cc: 
[email protected]... Connecting to [127.0.0.1] via relay...
220 dev.tridiumtech.com ESMTP Sendmail 8.13.8/8.13.8; Thu, 21 Oct 2010 17:02:05 -0400
>>> EHLO dev.tridiumtech.com
250-dev.tridiumtech.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<[email protected]> SIZE=37
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
550 5.1.1 <[email protected]>... User unknown
503 5.0.0 Need RCPT (recipient)
>>> RSET
250 2.0.0 Reset state
>>> RSET
250 2.0.0 Reset state
root... Using cached ESMTP connection to [127.0.0.1] via relay...
>>> MAIL From:<> SIZE=1061
250 2.1.0 <>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 o9LL25mA024437 Message accepted for delivery
root... Sent (o9LL25mA024437 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 dev.tridiumtech.com closing connection

原始问题:

我从开发服务器发送邮件时遇到问题。

除非我发送邮件给一个以我的邮箱中存在的用户名开头的用户,否则邮件会被拒绝并显示“用户未知”。

例如,我的开发箱中有一个名为“twilson”的用户。因此,我可以向任何以“twilson”开头的地址发送电子邮件,例如[电子邮件保护],它将毫无问题地发送。

但是,我的盒子上没有用户“tom”,所以当我发送电子邮件到[电子邮件保护]它会拒绝说:

10月21日 10:07:49 dev sendmail[19638]: o9LE7mcV019638: < tom@localhost >... 用户未知

它实际上获取我发送的电子邮件地址的用户名并将其放在本地主机名上。

为什么会这样?我该如何修正配置,以便可以将其发送给任何人?

谢谢,汤姆

附加信息:

地址测试结果:

> > 3,0 [email protected]
canonify           input: fred @ teaparty . net
Canonify2          input: fred < @ teaparty . net >
Canonify2        returns: fred < @ teaparty . net . >
canonify         returns: fred < @ teaparty . net . >
parse              input: fred < @ teaparty . net . >
Parse0             input: fred < @ teaparty . net . >
Parse0           returns: fred < @ teaparty . net . >
ParseLocal         input: fred < @ teaparty . net . >
ParseLocal       returns: fred < @ teaparty . net . >
Parse1             input: fred < @ teaparty . net . >
Mailertable        input: < teaparty . net > fred < @ teaparty . net . >
Mailertable        input: teaparty . < net > fred < @ teaparty . net . >
Mailertable      returns: fred < @ teaparty . net . >
Mailertable      returns: fred < @ teaparty . net . >
MailerToTriple     input: < > fred < @ teaparty . net . >
MailerToTriple   returns: fred < @ teaparty . net . >
Parse1           returns: $# esmtp $@ teaparty . net . $: fred < @ teaparty . net . >
parse            returns: $# esmtp $@ teaparty . net . $: fred < @ teaparty . net . >

DNS 测试:

;; ANSWER SECTION:
teaparty.net.           3600    IN      MX      5 www.teaparty.net.

答案1

如果这是您发来的邮件:

Date: Thu, 21 Oct 2010 14:56:03 -0400
From: root <[email protected]>
To: [email protected]
Subject: Test

Test

根据您的个人资料,我怀疑是这样的,那么无论您的系统上存在什么问题,都不是 sendmail 的问题。您的 sendmail 在出站电子邮件方面配置得很好。

话虽如此,显然某物不起作用,否则你就不会发帖了。你愿意编辑你的问题,还是提出一个新问题,说出你所知道的(你想要实现什么,你在做什么,发生了什么),而不是你认为可能的根本原因?

答案2

(如果存在 sendmail.mc,则应发布其内容。sendmail.cf 是 m4 读取后生成的)

运行 sendmail -bt(测试模式)。在其中,键入 $=w 以检查变量的内容。如果变量的内容包括 wtw3.com,则意味着您的本地计算机会考虑发送到[电子邮件保护]作为应该在本地处理的邮件,因此如果用户不退出,它会抱怨。尝试从 /etc/mail/local-host-names 中删除 wtw3.com(如果存在)

(顺便说一句,据我所知,这台机器似乎被配置为认为对于每个域名,在尝试发送电子邮件之前,应该检查 Kuser 数据库中地址的 LHS)

避免这种情况的一个快速方法是在 sendmail.mc 中定义以下内容

define(LUSER_RELAY,`[Google MX 之一]')dnl

包括 [] 括号。

我不知道您如何从新的 sendmail.mc 为您的发行版生成 sendmail.cf。在 Debian 中,我运行 sendmailconfig。

更适合您的机器的配置是使用 FEATURE(nullclient) 或变体http://blog.postmaster.gr/2006/09/06/configuring-sendmail-for-your-unix-desktop/

相关内容