Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2402
  • Last Modified:

Missing Message-ID in email headers

We are trying to identify where in an SMTP message delivery process the Message-ID from the email header is populated.  We are having a situation where the Message-ID is coming up blank.  This is causing problems as mail servers that require message-id are dropping these emails flagging them as SPAM.

Here is what we know at the moment.

When we send email to our exchange server first, which then forwards the mail to the Mcafee Ironmail Server, Exchange seems to add a message-id in the header and all works fine.  

However, when mail is sent via SQL Database Mail which hands it off to Mcafee Ironmail, the message-id is blank.  This leads me to believe that SQL Database Mail is responsible for adding the message-id.   When I asked our local SQL expert, he said that SQL does not add any information to the outbound message-id header.

I then opened up a level 3 ticket with Mcafee to ask if Ironmail is responsible for adding the message-id header and they said it does not and can't.

So the facts are that when mail is sent from exchange to ironmail, it adds the exchange message-id info.  When we send from SQL to Ironmail, the message-id is blank.  So one would think that whatever sends the mail to ironmail is updating the message-id information.

I've not found any useful information definitively identifying where the message-id is populated at.  Specifically, I can't find reference to whether SQL Database Mail can or should?

So all of you email experts out there.   What's going on.
0
rdelrosario
Asked:
rdelrosario
  • 6
  • 5
1 Solution
 
BembiCEOCommented:
At least what I can tell you that my mails, internal as well as SQL Database E-Mails are stamped with MessageID@MyExchange.MyDomain.tld.

That means, that the message is stamped by the transport server (= my Exchnage server what makes sense in my mind).
Have in mind, that not all communication is made by SMTP. So if a client (i.e. SQL) connects to a server and uses the same procedure you can use via telnet, there is nothing else as the transport server, who is capable to stamp the mail.
0
 
rdelrosarioAuthor Commented:
not sure I follow what your trying to convey.  are you saying database mail should provide message-Id stamp in itself.  We will not be running through exchange but need the message-id
0
 
David Johnson, CD, MVPOwnerCommented:
Since database mail is not adding the message-id, i'd send it to exchange and let exchange add the message-id and forward it on to ironmail
0
2017 Webroot Threat Report

MSPs: Get the facts you need to protect your clients.
The 2017 Webroot Threat Report provides a uniquely insightful global view into the analysis and discoveries made by the Webroot® Threat Intelligence Platform to provide insights on key trends and risks as seen by our users.

 
rdelrosarioAuthor Commented:
I wanted to avoid that as our corporate exchange server will be hammered with mail traffic which will affect my internal users.  our mail campaigns send at times 50,000 emails a day with growth of up to 150,000 per day.  we had to buy two separate mail servers and separate circuits to handle the traffic.
0
 
BembiCEOCommented:
OK, just to confirm - yes SQL doesn't send an ID...
But you can use any mail transport service, even sendmail or others.
0
 
rdelrosarioAuthor Commented:
can SQL, does SQL database mail have the capability to add message-id?  why would ironmail not be considered a transport?  it is actually delivering the email.  so my delimma is ironmail engineers say not possible and SQL programmers tell me they don't know if it's possible and I can't run it through exchange?  this gives me no options at all?  I was under the impression that SQL mail includes the message-Id but database mail (newer version of SQL mail) does not.  is it just a coding issue in SQL to allow for this?
0
 
BembiCEOCommented:
As I can see, SQL delivers mail natively to any mail server, doesn't matter what it is. But it connects natively to the mailserver. The older SQL Mail used a MAPI profile I know.

At least I tried with a different client, which can either send via Outlook MAPi or via MS CDO
Outlook Mapi as well as Database Mail shows Exchange ID and as sender while
MS CDO show a different ID as well as the client as sender.

So, means SQL Database mail doesn't stamp, but CDO does.

That brings me to the following methods....
1.) Try the old SQL Mail, you can send an e-mail via Exchange to yourself. If you see your exchange as originator, it doesn't work, if you see the SQL Pc as originator, it works.
2.) You may install (on SQL or somewhere else) native SMTP support. Then try to use this SMTP server as relay... SMTP Support is part of Win OS.
3.) Use any other mail transport server as relay, maybe exchange, sendmail or whatever
4.) Also CDO works, means if installed on SQL, you can at least wrtite some program code, to use CDO. CDOSYS:DLL is part of windows since 2000.
0
 
rdelrosarioAuthor Commented:
We are stuck with the following and would like to know if there are any creative options:

We cannot use Exchange as a relay to our Ironmail Server.
We must use SQL Database Mail to send directly to Ironmail.

Is there a way to inject the message-id another way before it goes to Ironmail?
0
 
BembiCEOCommented:
Following exactly you question... I would say NO.
You may additionall read this....
At the end of the article you find all SQL statements for database mail (in conparison to SQL Mail). There are no fields to set the header (what makes sense if native SMTP is used.
http://www.mssqltips.com/sqlservertip/1438/sql-server-2005-database-mail-setup-and-configuration-scripts/

So nevertheless, what is the problem to install SMTP on the SQL and use it as relay to ironmail?.
0
 
rdelrosarioAuthor Commented:
We are very hesitant to install any core component on our production SQL Cluster.  

What is interesting to me is the fact that Database Mail used natively like this would eliminate it as a solution for any legitimate company not wanting to be tagged as a SPAM House.  Message-ID is now a requirement for Symantec and Mcafee Mail Gateway's which serves a large percentage of corporate america.   I have a hard time believing that the creators of Database Mail require it be used with another "stamping" relay or transport.

So although SMTP may be a trivial install/setup on SQL, it requires many man hours to test/pass development phase.
0
 
BembiCEOCommented:
> I have a hard time believing that....
Sorry, I havn't written SQL, I just can only tell you what I see.

Maybe you know, just a instruction how to send native SMTP mails...
http://www.yuki-onna.co.uk/email/smtp.html
I guess this is what database mail does.

> So although SMTP may be a trivial install/setup on SQL, it requires many man hours to test/pass development phase.

At least less then writing your own CDO stack...

So, if you don't want to use your SQL Server, take a virtual machine with windows and the SMTP feature and the configuration should only take some minutes...
0
 
rdelrosarioAuthor Commented:
I guess it is what it is.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now