C
C
SMTP Send Raw Command
Demonstrates how to send a raw command to the SMTP server after the connecting and authenticating.Chilkat C Downloads
#include <C_CkMailMan.h>
void ChilkatSample(void)
{
BOOL success;
HCkMailMan mailman;
const char *responseStr;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mailman = CkMailMan_Create();
CkMailMan_putSmtpHost(mailman,"smtp.mail.us-west-2.awsapps.com");
CkMailMan_putSmtpSsl(mailman,TRUE);
CkMailMan_putSmtpPort(mailman,465);
success = CkMailMan_SmtpConnect(mailman);
if (success == FALSE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkMailMan_Dispose(mailman);
return;
}
CkMailMan_putSmtpUsername(mailman,"john@example.com");
CkMailMan_putSmtpPassword(mailman,"the_password");
success = CkMailMan_SmtpAuthenticate(mailman);
if (success == FALSE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkMailMan_Dispose(mailman);
return;
}
printf("Authenticated!\n");
// Send the "EHLO" command again to get the multi-line response that includes the SMTP capabilities.
// The capabilities are the lines in the response that begin with "250-".
responseStr = CkMailMan_smtpSendRawCommand(mailman,"EHLO client.example.com","utf-8",FALSE);
if (CkMailMan_getLastMethodSuccess(mailman) == FALSE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkMailMan_Dispose(mailman);
return;
}
printf("%s\n",responseStr);
// A sample response:
// 250-smtp.us-west-2.mail.awsapps.com
// 250-8BITMIME
// 250-AUTH PLAIN LOGIN
// 250 Ok
CkMailMan_Dispose(mailman);
}