Python 通过后缀发送给多个收件人的电子邮件仅由列表中的第一个地址接收

Python 通过后缀发送给多个收件人的电子邮件仅由列表中的第一个地址接收,python,postfix-mta,Python,Postfix Mta,我正在使用问题底部的Python代码将目录的内容发送到定义文件中的收件人列表。在该文件中,各个地址之间用;和列在单个字符串中。当提交所需的命令时,将发送所有未记录的问题,但显示电子邮件消息仅发送到列表中第一个指定的电子邮件地址 进行了一些挖掘之后,Postfix的main.cf文件似乎有一个收件人限制,默认值为1,这可以限制收件人的数量。我试着将整行内容散列出来,并将限制增加到200,这两种方法都没有任何效果 # dovecot 1.1.1 dovecot_destination_recipie

我正在使用问题底部的Python代码将目录的内容发送到定义文件中的收件人列表。在该文件中,各个地址之间用;和列在单个字符串中。当提交所需的命令时,将发送所有未记录的问题,但显示电子邮件消息仅发送到列表中第一个指定的电子邮件地址

进行了一些挖掘之后,Postfix的main.cf文件似乎有一个收件人限制,默认值为1,这可以限制收件人的数量。我试着将整行内容散列出来,并将限制增加到200,这两种方法都没有任何效果

# dovecot 1.1.1
dovecot_destination_recipient_limit = 200
当你从单一收件人的角度来看电子邮件时,一切似乎都很好,所以我不得不认为是Postfix/Dovecot sendmail部分导致了问题?请参阅消息输出到文件而不是发送到smtp的示例

Content-Type: multipart/mixed; boundary="===============7543504478351047681=="
MIME-Version: 1.0
Subject: Malware submission
To: xxxxx@gmail.com;xxxxx@hotmail.com
From: me@yu.com

You will not see this in a MIME-aware mail reader.

--===============7543504478351047681==
Content-Type: application/zip
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="sample.zip"

UEsDBAoAAAAAAHGfsT4AAAAAAAAAAAAAAAAGABwAdmlydXMvVVQJAAOVxdJNKJnSTXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAHGfsT4AAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQQAAAAB2aXJ1
cy9VVAUAA5XF0k11eAsAAQT1AQAABBQAAABQSwUGAAAAAAEAAQBMAAAAQAAAAAAA
--===============7543504478351047681==--
postfix邮件日志包含以下内容

May 17 21:10:41 MacBook-Pro-2 postfix/qmgr[3816]: 3FB902C186A: from=<chris.parker@email.co.uk>, size=1004, nrcpt=1 (queue active)
May 17 21:10:42 MacBook-Pro-2 postfix/smtp[3855]: 3FB902C186A: to=<xxxxo@gmail.com>, relay=gmail-smtp-in.l.google.com[209.85.143.27]:25, delay=1.3, delays=0.01/0.01/0.57/0.75, dsn=2.0.0, status=sent (250 2.0.0 OK 1305662986 k6si1621545wej.25)
May 17 21:10:42 MacBook-Pro-2 postfix/qmgr[3816]: 3FB902C186A: removed

生成电子邮件的Python代码

定义邮件时,应使用逗号分隔的收件人列表将
设置为
列表:

recipients = 'foo, bar'
outer['To'] = recipients
但是,当您调用
sendmail()
时,需要将其作为列表传递给收件人:

rcpts = [r.strip() for r in recipients.split(',') if r]
s.sendmail(sender, rcpts, composed)

定义邮件时,应使用逗号分隔的收件人列表将
设置为
列表:

recipients = 'foo, bar'
outer['To'] = recipients
但是,当您调用
sendmail()
时,需要将其作为列表传递给收件人:

rcpts = [r.strip() for r in recipients.split(',') if r]
s.sendmail(sender, rcpts, composed)

你在更改限制后重新启动了postfix吗?确实是的,很遗憾,这根本没有影响。你在更改限制后重新启动了postfix吗?确实是的,很遗憾,这根本没有影响。