C
C
SMTP NTLM Authentication
See more SMTP Examples
Demonstrates how to specify NTLM authentication for sending email via SMTP.Chilkat C Downloads
#include <C_CkMailMan.h>
#include <C_CkEmail.h>
void ChilkatSample(void)
{
BOOL success;
HCkMailMan mailman;
BOOL useCurrentWindowsUser;
HCkEmail email;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mailman = CkMailMan_Create();
// Specify your particular mail server's SMTP settings.
CkMailMan_putSmtpHost(mailman,"smtp.my_mail_server.com");
CkMailMan_putSmtpPort(mailman,587);
CkMailMan_putStartTLS(mailman,TRUE);
// This assumes you know your SMTP server supports NTLM authentication.
// To explicitly request NTLM authentication, set the SmtpAuthMethod property = "ntlm".
CkMailMan_putSmtpAuthMethod(mailman,"ntlm");
// Note: Normally you should avoid setting the SmtpAuthMethod.
// SMTP servers tell the connecting client the authentication methods it will accept when the initial connection is made.
// Chilkat will automatically use this information to select and use the most secure auth method supported by the server.
useCurrentWindowsUser = TRUE;
if (useCurrentWindowsUser == TRUE) {
// If you are running on Windows, and you wish for the NTLM credentials of the current logged-on Windows user to be used,
// set the username and password to the string "default"
CkMailMan_putSmtpUsername(mailman,"default");
CkMailMan_putSmtpPassword(mailman,"default");
}
else {
// Explicitly specify the SMTP username/password
// The SMTP username is your email account username, which is often your email address.
CkMailMan_putSmtpUsername(mailman,"your_smtp_username_or_email_address");
CkMailMan_putSmtpPassword(mailman,"your_password");
}
email = CkEmail_Create();
CkEmail_putSubject(email,"This is a test");
CkEmail_putBody(email,"This is a test");
// Don't forget to change this to use your email addresses..
CkEmail_putFrom(email,"Chilkat Support <support@chilkatsoft.com>");
success = CkEmail_AddTo(email,"Chilkat Admin","admin@chilkatsoft.com");
// To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.
success = CkMailMan_SendEmail(mailman,email);
if (success != TRUE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkMailMan_Dispose(mailman);
CkEmail_Dispose(email);
return;
}
success = CkMailMan_CloseSmtpConnection(mailman);
if (success != TRUE) {
printf("Connection to SMTP server not closed cleanly.\n");
}
printf("Mail Sent!\n");
CkMailMan_Dispose(mailman);
CkEmail_Dispose(email);
}