Community Discussions and Support
Question about Mercury generated Message-ID headers.

Mercury 4.73, containing this fix and a number of other updates, is now being prepared, and should be released shortly.

/Rolf

<p>Mercury 4.73, containing this fix and a number of other updates, is now being prepared, and should be released shortly.</p><p>/Rolf </p>

Big picture is I am trying track why some of my emails are going missing. This has lead to some detailed traces and now I have a question around the Message-ID headers generated by Mercury.

I am using Mercury to forward email as an SMTP relay engine. The traces to my downstream Smarthost (Exchange) show for example a single SMTP session with the Smarthost being used to transmit 3 emails all to the same recipients but with 3 differing Subjects and content. The Mercury generated Message-ID header for each email in the session is the same. Is this legal/normal? Shouldn't each email have its own id or is the ID somehow linked to the session/socket and it is fine to have duplicates?

 

Peter

<p>Big picture is I am trying track why some of my emails are going missing. This has lead to some detailed traces and now I have a question around the Message-ID headers generated by Mercury.</p><p>I am using Mercury to forward email as an SMTP relay engine. The traces to my downstream Smarthost (Exchange) show for example a single SMTP session with the Smarthost being used to transmit 3 emails all to the same recipients but with 3 differing Subjects and content. The Mercury generated Message-ID header for each email in the session is the same. Is this legal/normal? Shouldn't each email have its own id or is the ID somehow linked to the session/socket and it is fine to have duplicates?</p><p> </p><p>Peter </p>

afaik, the message-ID only needs be unique within a maildrop, not in transit, and it's the server responsible for the maildrop to keep the messages apart.

afaik, the message-ID only needs be unique within a maildrop, not in transit, and it's the server responsible for the maildrop to keep the messages apart.

I am using Mercury to forward email as an SMTP relay engine. The traces

to my downstream Smarthost (Exchange) show for example a single SMTP

session with the Smarthost being used to transmit 3 emails all to the

same recipients but with 3 differing Subjects and content. The Mercury

generated Message-ID header for each email in the session is the same.

Is this legal/normal? Shouldn't each email have its own id or is the ID

somehow linked to the session/socket and it is fine to have duplicates?

 The RFC 2822 message header Message-ID: is a unique header in the message.  The Mercury message ID shown in the logs should be unique within a session.

 

<blockquote>I am using Mercury to forward email as an SMTP relay engine. The traces to my downstream Smarthost (Exchange) show for example a single SMTP session with the Smarthost being used to transmit 3 emails all to the same recipients but with 3 differing Subjects and content. The Mercury generated Message-ID header for each email in the session is the same. Is this legal/normal? Shouldn't each email have its own id or is the ID somehow linked to the session/socket and it is fine to have duplicates?</blockquote><p> The RFC 2822 message header Message-ID: is a unique header in the message.  The Mercury message ID shown in the logs should be unique within a session.</p><p> </p>

So it appears this is a bug in Mercury 4.72. I know for a fact the Exchange server will discard what it thinks are duplicate messages since this is discussed a lot on various forums. I have since taken Mercury out of the loop and my missing email problem has cleared up.

 To recreate this problem; have a dumb SMTP client send a large number of small messages without any message-ID headers to Mercury. Mercury will relay to a smarthost giving many of the outgoing messages the same message-id header. Exchange will then randomly drop some of them without notification.

I have been scratching my head for weeks on this.

 Peter Dunphy

<p>So it appears this is a bug in Mercury 4.72. I know for a fact the Exchange server will discard what it thinks are duplicate messages since this is discussed a lot on various forums. I have since taken Mercury out of the loop and my missing email problem has cleared up.</p><p> To recreate this problem; have a dumb SMTP client send a large number of small messages without any message-ID headers to Mercury. Mercury will relay to a smarthost giving many of the outgoing messages the same message-id header. Exchange will then randomly drop some of them without notification.</p><p>I have been scratching my head for weeks on this. </p><p> Peter Dunphy </p>

RFC2822  - It appears that Mercury 4.72 violates the RFC:

 

The "Message-ID:" field provides a unique message identifier that
refers to a particular version of a particular message. The
uniqueness of the message identifier is guaranteed by the host that
generates it (see below). This message identifier is intended to be
machine readable and not necessarily meaningful to humans. A message
identifier pertains to exactly one instantiation of a particular
message; subsequent revisions to the message each receive new message
identifiers.

 

<p>RFC2822  - It appears that Mercury 4.72 violates the RFC: </p><p> </p><pre class="newpage">The "Message-ID:" field provides a unique message identifier that refers to a particular version of a particular message. The uniqueness of the message identifier is guaranteed by the host that generates it (see below). This message identifier is intended to be machine readable and not necessarily meaningful to humans. A message identifier pertains to exactly one instantiation of a particular message; subsequent revisions to the message each receive new message identifiers. </pre><p> </p>

So it appears this is a bug in Mercury 4.72. I know for a fact the

Exchange server will discard what it thinks are duplicate messages since

this is discussed a lot on various forums. I have since taken Mercury

out of the loop and my missing email problem has cleared up.

 To

recreate this problem; have a dumb SMTP client send a large number of

small messages without any message-ID headers to Mercury. Mercury will

relay to a smarthost giving many of the outgoing messages the same

message-id header. Exchange will then randomly drop some of them without

notification.

I have been scratching my head for weeks on this.

This has been verified and passed to the Mercury test group and David.  Any time you are using a dumb  mailer the Message-ID: will be duplicated when sending in the same session.

 

<blockquote><p>So it appears this is a bug in Mercury 4.72. I know for a fact the Exchange server will discard what it thinks are duplicate messages since this is discussed a lot on various forums. I have since taken Mercury out of the loop and my missing email problem has cleared up.</p><p> To recreate this problem; have a dumb SMTP client send a large number of small messages without any message-ID headers to Mercury. Mercury will relay to a smarthost giving many of the outgoing messages the same message-id header. Exchange will then randomly drop some of them without notification.</p></blockquote><blockquote>I have been scratching my head for weeks on this. </blockquote><p>This has been verified and passed to the Mercury test group and David.  Any time you are using a dumb  mailer the Message-ID: will be duplicated when sending in the same session.</p><p> </p>

This has been verified and passed to the Mercury test group and David. 

Any time you are using a dumb  mailer the Message-ID: will be duplicated

when sending in the same session.

David has just put out a fix and is being tested by the Mercury testers.  I expect there will be a fix out shortly.  The problem in the previous version appears to be something odd in
the Borland runtime libraries random number generator, combined with job processing happening very quickly (faster than a Windows "tick"). David has changed the logic so this should no longer be able to happen.
<blockquote>This has been verified and passed to the Mercury test group and David.  Any time you are using a dumb  mailer the Message-ID: will be duplicated when sending in the same session.</blockquote>David has just put out a fix and is being tested by the Mercury testers.  I expect there will be a fix out shortly.  The problem in the previous version appears to be something odd in the Borland runtime libraries random number generator, combined with job processing happening very quickly (faster than a Windows "tick"). David has changed the logic so this should no longer be able to happen.

Regarding "same session"  and dumb mailers (like aspSmartMail). Would this vbscript code send mail in one or two sessions? Or, what defines a session when sending using a dumb mailer? Is it the creation of the aspSmartMail object or calling its SendMail method? 

<%
obj = CreateObject("AspSmartMail.SmartMail")

obj.SenderAddress = "someone@domain.com"
obj.Recipients.Add "john.doe@domain.com", "John DOE"
obj.Subject = "Hello John"
obj.Body = "Dear John,..."
obj.SendMail

obj.Recipients.Clear
obj.Recipients.Add "kees.visser@domain.com", "Kees Visser"
obj.SendMail

set obj=Nothing
%>

 This would definitely be 1 session:

<%
obj = CreateObject("AspSmartMail.SmartMail")

obj.SenderAddress = "someone@domain.com"
obj.Recipients.Add "john.doe@domain.com", "John DOE"
obj.Recipients.Add "kees.visser@domain.com", "Kees Visser"
obj.Subject = "Hello John"
obj.Body = "Dear John,..."
obj.SendMail

set obj=Nothing
%>

Is the fix on 4.72 available?

&lt;p&gt;Regarding &quot;same session&quot; &amp;nbsp;and dumb mailers (like aspSmartMail).&amp;nbsp;Would this vbscript code send mail in one or two sessions? Or, what defines a session when sending using a dumb mailer?&amp;nbsp;Is it the creation of the&amp;nbsp;aspSmartMail object or calling its SendMail method?&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;% obj = CreateObject(&quot;AspSmartMail.SmartMail&quot;)&lt;/p&gt;&lt;p&gt;obj.SenderAddress = &quot;someone@domain.com&quot; obj.Recipients.Add &quot;john.doe@domain.com&quot;, &quot;John DOE&quot; obj.Subject = &quot;Hello John&quot; obj.Body = &quot;Dear John,...&quot; obj.SendMail &lt;/p&gt;&lt;p&gt;obj.Recipients.Clear obj.Recipients.Add &quot;kees.visser@domain.com&quot;, &quot;Kees Visser&quot; obj.SendMail set obj=Nothing %&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;This would&amp;nbsp;definitely&amp;nbsp;be 1 session:&lt;/p&gt;&lt;p&gt;&amp;lt;% obj = CreateObject(&quot;AspSmartMail.SmartMail&quot;)&lt;/p&gt;&lt;p&gt;obj.SenderAddress = &quot;someone@domain.com&quot; obj.Recipients.Add &quot;john.doe@domain.com&quot;, &quot;John DOE&quot; obj.Recipients.Add &quot;kees.visser@domain.com&quot;, &quot;Kees Visser&quot; obj.Subject = &quot;Hello John&quot; obj.Body = &quot;Dear John,...&quot; obj.SendMail &lt;/p&gt;&lt;p&gt;set obj=Nothing %&amp;gt;&lt;/p&gt;&lt;p&gt;Is the fix on 4.72 available?&lt;/p&gt;
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft