我正在运行一个OSticket支持系统,该系统利用Mailcow堆栈进行电子邮件消息传递。
一切工作正常,除了由于邮箱问题等原因我们无法向票证作者发送电子邮件的情况。
在这些情况下,会发生以下情况:
- OS Ticket 尝试通过 Mailcow 的堆栈以传统方式发送电子邮件
- 电子邮件发送失败,Postfix 返回退回邮件/“无法送达的邮件返回发件人”电子邮件
- OS Ticket 的行为就好像 Mailer Daemon 创建了一个新的 Ticket,但经常会丢失
- 我们的支持团队不知道电子邮件发送失败
- 我们的客户从未得到帮助。
在 OSTicket 端查看这一点,似乎 OSticket会尝试将弹回与原始机票相匹配。。然而,我的电子邮件方面的默认配置不包括OSticket 期望的必需标头。
我想解决这个问题,似乎添加额外的标头可能有助于 OSTicket 认识到这是一个反弹。
我对 postfix 很陌生,所以我不知道如何做到这一点,但我很确定它是可行的。
谁能帮我弄清楚如何配置这个?谢谢你!
我已经包含了一封退回电子邮件的完整原始来源,它经过大量编辑,但也许标头会有所帮助。
Return-Path: <>
Delivered-To: [REDACTED]
Received: from [REDACTED] ([[REDACTED]])
by 847cc1941aed with LMTP
id wPAfFiLbwmWYrwYAydh85g
(envelope-from <>)
for <[REDACTED]>; Wed, 07 Feb 2024 01:21:38 +0000
Received: by [REDACTED] (Postcow)
id 5482521BF8E2; Wed, 7 Feb 2024 01:21:38 +0000 (UTC)
Date: Wed, 7 Feb 2024 01:21:38 +0000 (UTC)
From: MAILER-DAEMON@[REDACTED] (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: [REDACTED]
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
boundary="CA4EC21BFE80.1707268898/[REDACTED]"
Message-Id: <20240207012138.5482521BF8E2@[REDACTED]>
This is a MIME-encapsulated message.
--CA4EC21BFE80.1707268898/[REDACTED]
Content-Description: Notification
Content-Type: text/plain; charset=us-ascii
This is the mail system at host [REDACTED].
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<[REDACTED]>: connect to [REDACTED][[REDACTED]]:25:
Connection timed out
--CA4EC21BFE80.1707268898/[REDACTED]
Content-Description: Delivery report
Content-Type: message/delivery-status
Reporting-MTA: dns; [REDACTED]
X-Postcow-Queue-ID: CA4EC21BFE80
X-Postcow-Sender: rfc822; [REDACTED]
Arrival-Date: Fri, 2 Feb 2024 01:10:13 +0000 (UTC)
Final-Recipient: rfc822; [REDACTED]
Original-Recipient: rfc822;[REDACTED]
Action: failed
Status: 4.4.1
Diagnostic-Code: X-Postcow; connect to [REDACTED]:25:
Connection timed out
--CA4EC21BFE80.1707268898/[REDACTED]
Content-Description: Undelivered Message
Content-Type: message/rfc822
Return-Path: <[REDACTED]>
Received: from [[REDACTED]] (localhost [[REDACTED]]) by [REDACTED] (Mailerdaemon) with ESMTPSA id CA4EC21BFE80;
Fri, 2 Feb 2024 01:10:13 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=[REDACTED];
s=dkim; t=1706836214;
h=from:subject:date:message-id:to:cc:mime-version:content-type;
bh=[REDACTED]
b=[REDACTED]
Date: Fri, 02 Feb 2024 01:10:13 +0000
Message-ID: <BKAfB/m-40f2Z-AAAAAGINAACIBAAATe4OlSy5-[REDACTED]>
From: =?utf-8?Q?[REDACTED]?= <[REDACTED]>
Subject: =?UTF-8?Q?Re:=[REDACTED]?=
To: =?utf-8?Q?[REDACTED]?= [REDACTED]
Cc: =?utf-8?Q?[REDACTED]?= [REDACTED]
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="=_9875f05c0d2ad638ed6e39eb808b5ce5"
X-Last-TLS-Session-Version: TLSv1.3
This is a message in Mime Format. If you see this, your mail reader does not support this format.
--=_9875f05c0d2ad638ed6e39eb808b5ce5
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
[REDACTED]
--=_9875f05c0d2ad638ed6e39eb808b5ce5--
--CA4EC21BFE80.1707268898/[REDACTED]--
标识 字段(RFC 5322,3.6.4)
In-Reply-To
旨在References
将电子邮件回复排序为线程。Postfix DSN 支持中的退回邮件(又称投递状态通知)基于RFC 3464,但未提及这些标头。尽管RFC 3834, 3.1.6建议在包括 DSN 的自动回复中使用这些标头,但它与电子邮件回复是不同的概念。我不知道任何配置参数会改变 Postfix 中的这种行为。由于 Postfix 生成基于RFC 3464 的格式良好的 DSN 消息,因此可以在票务系统中添加对它们的支持。
仔细观察 osTicket
class Mail_Parse {}
发现它已经支持 RFC 3464 DSN:如果
Content-Type
多部分消息的任何部分 是message/delivery-status
,则isBounceNotice()
处理正文并self::splitHeaders($body)
查找标头Action: failed
。如果发现该邮件,则将其标记为退回邮件。在这种情况下,
parse($stream)
从 获取标头,从或消息部分getOriginalMessageHeaders()
获取原始标头。Postfix 的 DSN 包含原始邮件及其在前者中的标头。message/rfc822
text/rfc822-headers
references
来自原始References
标题和in-reply-to
取自Message-ID
或In-Reply-To
取自原始消息。