提供 authinfo 时,Sendmail 发出“530 Authentication required”错误消息

提供 authinfo 时,Sendmail 发出“530 Authentication required”错误消息

sender_email- 不存在的电子邮件地址,但必须用作发件人地址,因为接收方主机会拒绝来自其他电子邮件的电子邮件。

receiver_email- 应该接收发送消息的电子邮件

local_smtp- 安装在本地网络中另一台计算机上的 SMTP 服务器,并将所有收到的邮件转发到external_smtp

external_smtp- 安装在另一个网络中的计算机上的 SMTP 服务器,并拒绝所有非来自其他网络的电子邮件sender_email

我已将 sendmail 配置为从用户/密码发送电子邮件sender_email并进行身份验证,local_smtp该用户/密码应该将电子邮件进一步发送到external_smtp仅接受从特定电子邮件发送的电子邮件,sender_email在本例中就是这样。但是,从日志文件来看,sendmail 使用external_smtp而不是进行身份验证local_smtp。我不想通过 进行身份验证external_smtp,因为这取决于local_smtp

logfile:

10745 <<< Subject: Terminal Email Send
10745 <<<
10745 <<< Email Content line 1
10745 <<< Email Content line 2
10745 <<< [EOF]
10759 === CONNECT local_smtp.
10759 <<< 220 **********************************************************************^M
10759 >>> EHLO mgmt-snmp
10759 <<< 250-local_smtp says hello^M
10759 <<< 250-AUTH LOGIN PLAIN^M
10759 <<< 250-VRFY^M
10759 <<< 250 8BITMIME^M
10759 >>> MAIL From:<sender_email> AUTH=sender_email
10759 <<< 530 authentication required^M
10759 >>> This is a MIME-encapsulated message
10759 >>>
10759 >>> --t8IEdmbX010759.1442587188/mgmt-snmp
10759 >>>
10759 >>> The original message was received at Fri, 18 Sep 2015 16:39:48 +0200
10759 >>> from root@localhost
10759 >>>
10759 >>>    ----- The following addresses had permanent fatal errors -----
10759 >>> receiver_email
10759 >>>     (reason: 530 authentication required)
10759 >>>

我猜这与 相关AUTH=sender_email,但我不知道如何改变它。

sendmail.mc:

divert(-1)dnl
#-----------------------------------------------------------------------------
# $Sendmail: debproto.mc,v 8.14.4 2014-02-11 13:02:08 cowboy Exp $
#
# Copyright (c) 1998-2010 Richard Nelson.  All Rights Reserved.
#
# cf/debian/sendmail.mc.  Generated from sendmail.mc.in by configure.
#
# sendmail.mc prototype config file for building Sendmail 8.14.4
#
# Note: the .in file supports 8.7.6 - 9.0.0, but the generated
#   file is customized to the version noted above.
#
# This file is used to configure Sendmail for use with Debian systems.
#
# If you modify this file, you will have to regenerate /etc/mail/sendmail.cf
# by running this file through the m4 preprocessor via one of the following:
#   * make   (or make -C /etc/mail)
#   * sendmailconfig 
#   * m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# The first two options are preferred as they will also update other files
# that depend upon the contents of this file.
#
# The best documentation for this .mc file is:
# /usr/share/doc/sendmail-doc/cf.README.gz
#
#-----------------------------------------------------------------------------
divert(0)dnl
#
#   Copyright (c) 1998-2005 Richard Nelson.  All Rights Reserved.
#
#  This file is used to configure Sendmail for use with Debian systems.
#
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.14.4-4.1ubuntu1 2014-02-11 13:02:08 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
undefine(`confHOST_STATUS_DIRECTORY')dnl        #DAEMON_HOSTSTATS=
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
dnl #
dnl # General defines
dnl #
dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()
dnl #   into this directory before writing files.
dnl #   If *all* your user accounts are under /home then use that
dnl #   instead - it will prevent any writes outside of /home !
dnl #   define(`confSAFE_FILE_ENV',             `')dnl
dnl #
dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!
dnl # Remove `, Addr=' clauses to receive from any interface
dnl # If you want to support IPv6, switch the commented/uncommentd lines
dnl #
FEATURE(`no_default_msa')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
dnl #
dnl # Be somewhat anal in what we allow
define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
dnl #
dnl # Define connection throttling and window length
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
FEATURE(`use_cw_file')dnl
dnl #
dnl # The access db is the basis for most of sendmail's checking
FEATURE(`access_db', , `skip')dnl
dnl #
dnl # The greet_pause feature stops some automail bots - but check the
dnl # provided access db for details on excluding localhosts...
FEATURE(`greet_pause', `1000')dnl 1 seconds
dnl #
dnl # Delay_checks allows sender<->recipient checking
FEATURE(`delay_checks', `friend', `n')dnl
dnl #
dnl # If we get too many bad recipients, slow things down...
define(`confBAD_RCPT_THROTTLE',`3')dnl
dnl #
dnl # Stop connections that overflow our concurrent and time connection rates
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
dnl #
dnl # If you're on a dialup link, you should enable this - so sendmail
dnl # will not bring up the link (it will queue mail for later)
dnl define(`confCON_EXPENSIVE',`True')dnl
dnl #
dnl # Dialup/LAN connection overrides
dnl #
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl

dnl LOCAL_CONFIG
dnl EXPOSED_USER(root uucp)dnl # users exempt from masquerading
dnl LOCAL_USER(root)dnl
dnl MASQUERADE_AS(`external_smtp')dnl
dnl FEATURE(`allmasquerade')dnl
dnl FEATURE(`masquerade_envelope')dnl
dnl FEATURE(`nullclient', local_smtp)dnl

LOCAL_CONFIG
## Custom configurations below (will be preserved)
define(`SMART_HOST', `local_smtp')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash /etc/mail/authinfo')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl
dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl

authinfo:

AuthInfo:local_smtp "U:root" "I:my_username" "P:my_password"

答案1

以 root 身份发送带有跟踪地图 (authinfo) 查找的测试消息。

#!/bin/sh
# -d60.5 turn on traking map lookups
/usr/sbin/sendmail -d60.5 -v -i -fsender_email -- receiver_email  <<END
subject: test

test
END

定义下一步测试的可能结果:

  • 没有 authinfo 查找
  • 使用与您预期不同的键进行 authinfo 查找
  • authinfo 查找返回“不匹配”
  • authinfo 查找返回正确的值

相关内容