Delphi DLL
Delphi DLL
SMTP NTLM Authentication
See more SMTP Examples
Demonstrates how to specify NTLM authentication for sending email via SMTP.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, MailMan, Email;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
mailman: HCkMailMan;
useCurrentWindowsUser: Boolean;
email: HCkEmail;
begin
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) then
begin
// 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');
end
else
begin
// 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');
end;
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) then
begin
Memo1.Lines.Add(CkMailMan__lastErrorText(mailman));
Exit;
end;
success := CkMailMan_CloseSmtpConnection(mailman);
if (success <> True) then
begin
Memo1.Lines.Add('Connection to SMTP server not closed cleanly.');
end;
Memo1.Lines.Add('Mail Sent!');
CkMailMan_Dispose(mailman);
CkEmail_Dispose(email);
end;