C
C
Create Non-Multipart Email with XML Body that is an Attachment
See more SMTP Examples
Creates an email where the only body is a binary WAV file. The technique used in the example could be applied to other binary files, such as PDF, MS-WORD docs, Excel docs, etc.Chilkat C Downloads
#include <C_CkEmail.h>
#include <C_CkMailMan.h>
void ChilkatSample(void)
{
BOOL success;
const char *xmlBody;
HCkEmail email;
HCkMailMan mailman;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// The goal of this example is to create an email that has this MIME format,
// where the body of the email is XML using base64 encoding,
// and the Content-Type and Content-Disposition are set as indicated.
// Date: Wed, 23 Aug 2023 09:01:52 +0200 (CEST)
// From: joe@example1.com
// Subject: [v=EMCS.NL][a=NL****][k=****][s=0]
// To: mary@example2.com
// MIME-Version: 1.0
// Content-Type: application/octet-stream; charset=us-ascii; name=6bd8dfe259b3a42c90a28a82b5fc6e77.txt
// Content-Transfer-Encoding: Base64
// Content-Disposition: attachment; filename=6bd8dfe259b3a42c90a28a82b5fc6e77.txt
// Message-Id: <......>
//
// <multi-line base64 encoded XML here>
success = TRUE;
xmlBody = "<ie:IE801 xmlns:ie=\"urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:IE801:V3.01\" xmlns:tms=\"urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:TMS:V3.01\">....</ie:IE801>";
email = CkEmail_Create();
// Add subject, TO, FROM, etc.
CkEmail_putSubject(email,"[v=EMCS.NL][a=NL****][k=****][s=0]");
CkEmail_putFrom(email,"joe@example1.com");
success = CkEmail_AddTo(email,"Mary","mary@example2.com");
CkEmail_putBody(email,xmlBody);
CkEmail_AddHeaderField(email,"Content-Transfer-Encoding","Base64");
CkEmail_AddHeaderField(email,"Content-Type","application/octet-stream; charset=us-ascii; name=6bd8dfe259b3a42c90a28a82b5fc6e77.txt");
CkEmail_AddHeaderField(email,"Content-Disposition","attachment; filename=6bd8dfe259b3a42c90a28a82b5fc6e77.txt");
// Your email is ready to send
mailman = CkMailMan_Create();
CkMailMan_putSmtpHost(mailman,"smtp.my_mail_server.com");
CkMailMan_putSmtpUsername(mailman,"myUsername");
CkMailMan_putSmtpPassword(mailman,"myPassword");
CkMailMan_putSmtpPort(mailman,465);
CkMailMan_putSmtpSsl(mailman,TRUE);
CkMailMan_putStartTLS(mailman,TRUE);
success = CkMailMan_SendEmail(mailman,email);
if (success != TRUE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkEmail_Dispose(email);
CkMailMan_Dispose(mailman);
return;
}
success = CkMailMan_CloseSmtpConnection(mailman);
if (success != TRUE) {
printf("Connection to SMTP server not closed cleanly.\n");
}
printf("Mail Sent!\n");
CkEmail_Dispose(email);
CkMailMan_Dispose(mailman);
}