Sample code for 30+ languages & platforms
Tcl

Auto-Generate or Explicitly Specify the Message-ID Email Header

Demonstrates how to auto-generate or explicitly specify the Message-ID header field.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set email [new_CkEmail]

CkEmail_put_Subject $email "test"
CkEmail_put_Body $email "test"
CkEmail_AddTo $email "Joe" "joe@example1.com"
CkEmail_put_From $email "mary@example2.com"

set mailman [new_CkMailMan]

# When the mailman sends email, it renders the email to be sent,
# and then sends the rendered MIME.

# Instead of actually sending the email, this example will render
# to MIME so we can see what would be sent..

# We can explicitly set the Message-ID like this:
CkMailMan_put_AutoGenMessageId $mailman 0
CkEmail_AddHeaderField $email "Message-ID" "<xyz123@abc>"

set mimeStr [CkMailMan_renderToMime $mailman $email]
puts "$mimeStr"

# This is what we get:

# MIME-Version: 1.0
# Date: Mon, 20 Jul 2020 17:20:09 -0500
# Message-ID: <xyz123@abc>
# Content-Type: text/plain; charset=us-ascii; format=flowed
# Content-Transfer-Encoding: 7bit
# X-Priority: 3 (Normal)
# Subject: test
# To: Joe <joe@example1.com>
# From: mary@example2.com
# 
# test

puts "--------"

# If we auto-generate...
CkMailMan_put_AutoGenMessageId $mailman 1
set mimeStr [CkMailMan_renderToMime $mailman $email]
puts "$mimeStr"

# We get this:

# MIME-Version: 1.0
# Date: Mon, 20 Jul 2020 17:21:20 -0500
# Message-ID: <04EDE096BBFE484967F6398A973B0FCF6EA09A44@CHILKATSLICE>
# Content-Type: text/plain; charset=us-ascii; format=flowed
# Content-Transfer-Encoding: 7bit
# X-Priority: 3 (Normal)
# Subject: test
# To: Joe <joe@example1.com>
# From: mary@example2.com
# 
# test

delete_CkEmail $email
delete_CkMailMan $mailman