Delphi DLL
Delphi DLL
Create Email with Non-Standard Binary Body
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 Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Email, Mime;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
mime: HCkMime;
strMime: PWideChar;
email: HCkEmail;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mime := CkMime_Create();
success := CkMime_SetBodyFromFile(mime,'VoiceMessage.wav');
if (success = False) then
begin
Memo1.Lines.Add(CkMime__lastErrorText(mime));
Exit;
end;
// The MIME has this header:
// Content-Disposition: attachment;
// filename="VoiceMessage.wav"
// Content-Transfer-Encoding: base64
// Content-Type: audio/x-wav;
// name="VoiceMessage.wav"
// We don't want the content-disposition to be an
// attachment -- otherwise the email object will self-correct
// and put it in a multipart/mixed format...
CkMime_putDisposition(mime,'');
CkMime_putFilename(mime,'');
strMime := CkMime__getMime(mime);
Memo1.Lines.Add(strMime);
// Now load it into an email object:
email := CkEmail_Create();
success := CkEmail_SetFromMimeText(email,strMime);
if (success = False) then
begin
Memo1.Lines.Add(CkEmail__lastErrorText(email));
Exit;
end;
// Add subject, TO, FROM, etc.
CkEmail_putSubject(email,'This is a test');
CkEmail_putFrom(email,'support@chilkatsoft.com');
success := CkEmail_AddTo(email,'Matt','matt@chilkatsoft.com');
// Your email is ready to send.
// (but for this example, we'll simply save it to a file...)
success := CkEmail_SaveEml(email,'email.eml');
if (success = False) then
begin
Memo1.Lines.Add(CkEmail__lastErrorText(email));
Exit;
end;
Memo1.Lines.Add('OK!');
CkMime_Dispose(mime);
CkEmail_Dispose(email);
end;