HEBERGEMENT SITES INTERNET
CGI, ISAPI, ASP, Dot NET,
PHP & MySql,
DELPHI - Firebird & INTERBASE
 


Le but de ce didactitiel est de vous faire découvrir pas à pas, la construction d'une application pour le web avec Delphi 6. Il ne sera pas question ici, de faire le tour des technologies et possibilités offertes par la dernière version de l'outil de programmation, mais simplement de vous donner la marche à suivre pour créer une application portable.

 

unit uSendMail;

{$WARN SYMBOL_PLATFORM OFF}

(*-------------------------------------------------------------------
  Le but de cet exemple est de démontrer la simplicité du développement
  pour le web avec Delphi.

  - Vos objets Delphi sont écrit comme pour une application classique
  - Il suffit ensuite d'écrire les interfaces ISAPI / CGI ou Objet Com ASP
    pour les utiliser sur le web.

    Cette méthode présente également l'avantage de pouvoir tester vos objets
    sans avoir recours à un serveur web et à séparer les problèmes éventuels
    liés à chaques parties (L'objet Delphi, La DLL Isapi, ect)

    TpfSendMail
    -----------
     Cet objet COM ASP donne simplement accès à l'objet Delphi TObjetcSendMail
     (commun à toutes les technos Progamme Windows, ISAPI, ASP)

   ATTENTION
   --------
     Ne pas utiliser la version fichiers textes du Sendmail en production.
     Vous devez développer une version base de données ou consulter le site
     web www.delphiCenter.net pour voir si il existe d'autres versions
     si vous désiez malgré tout l'utiliser comme tel, nous vous conseillons de
     ne pas utiliser les logs.

  Version 1.0, copyrigth www.delphiCenter.net Mai 2001
  Auteur : JJM
  Email de l'auteur : jjm@delphiCenter.net
 ------------------------------------------------------------------*)

interface

uses
  ComObj, ActiveX, AspTlb, SendMailASP_TLB, StdVcl, uCustomSendMail;

type
  TpfSendMail = class(TASPObject, IpfSendMail)
    fSendMail : TObjectSendMail;
  protected
    procedure OnEndPage; safecall;
    procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
    function AddAttachment(const Value: WideString): OleVariant; safecall;
    function AddCC(const Value: WideString): OleVariant; safecall;
    function AddSender(const Value: WideString): OleVariant; safecall;
    function AddTo(const Value: WideString): OleVariant; safecall;
    function LoadBody(const Value: WideString): OleVariant; safecall;
    function Send: OleVariant; safecall;
    function SetTag(const TagStr, ValueStr: WideString): OleVariant; safecall;
    function ShowErrors(const Value: WideString): WideString; safecall;
    function showReportMail(const value: WideString): WideString; safecall;
    function AddBCC(const Value: WideString): OleVariant; safecall;
    procedure AddHtml(const Value: WideString); safecall;
    procedure AddText(const Value: WideString); safecall;
    procedure Set_Account(const Value: WideString); safecall;
    procedure Set_Body(const Value: WideString); safecall;
    procedure Set_Charset(const Value: WideString); safecall;
    procedure Set_ContentType(const Value: WideString); safecall;
    procedure Set_Date(const Value: WideString); safecall;
    procedure Set_FileLog(const Value: WideString); safecall;
    procedure Set_From(const Value: WideString); safecall;
    procedure Set_Host(const Value: WideString); safecall;
    procedure Set_Password(const Value: WideString); safecall;
    procedure Set_ReplyTo(const Value: WideString); safecall;
    procedure Set_SaveLog(Value: Integer); safecall;
    procedure Set_Subject(const Value: WideString); safecall;
    procedure SetPriority(Value: Integer); safecall;
  end;

implementation

uses ComServ, uConstSendMail, sysUtils;

procedure TpfSendMail.OnEndPage;
begin
  inherited OnEndPage;
  fSendMail.Free;
end;

procedure TpfSendMail.OnStartPage(const AScriptingContext: IUnknown);
begin
  inherited OnStartPage(AScriptingContext);
  fSendMail := TObjectSendMail.Create(Nil);
end;

function TpfSendMail.AddAttachment(const Value: WideString): OleVariant;
begin
  Result:=fSendMail.AddAttachment(Value);
end;

function TpfSendMail.AddCC(const Value: WideString): OleVariant;
begin
  Result:=fSendMail.AddCC(Value);
end;

function TpfSendMail.AddSender(const Value: WideString): OleVariant;
begin
  Result:=fSendMail.AddSender(Value);
end;

function TpfSendMail.AddTo(const Value: WideString): OleVariant;
begin
  Result:=fSendMail.AddTo(Value);
end;

function TpfSendMail.LoadBody(const Value: WideString): OleVariant;
begin
  Result:=fSendMail.LoadFromFile(Value);
end;

function TpfSendMail.Send: OleVariant;
begin
  Result:=fSendMail.send;
end;

function TpfSendMail.SetTag(const TagStr,ValueStr: WideString): OleVariant;
begin
  Result:=fSendMail.SetTag(TagStr,ValueStr);
end;

function TpfSendMail.ShowErrors(const Value: WideString): WideString;
Var i : Integer;
begin
  Result:='';
  For i:=0 to fSendMail.Errors.Count-1 do
  Result:=Result+fSendMail.Errors[i]+'<BR>';
end;

function TpfSendMail.showReportMail(const value: WideString): WideString;
begin
  Result:=fSendMail.MakeReport(Value);
end;

function TpfSendMail.AddBCC(const Value: WideString): OleVariant;
begin
  Result:=fSendMail.AddBcc(Value);
end;

procedure TpfSendMail.AddHtml(const Value: WideString);
begin
  fSendMail.AddHtml(Value);
end;

procedure TpfSendMail.AddText(const Value: WideString);
begin
  fSendMail.AddText(Value);
end;

procedure TpfSendMail.Set_Account(const Value: WideString);
begin
  fSendMail.SenderAccount:=Value;
end;

procedure TpfSendMail.Set_Body(const Value: WideString);
begin
  fSendMail.Body.add(Value);
end;

procedure TpfSendMail.Set_Charset(const Value: WideString);
begin
  fSendMail.Charset:=Value;
end;

procedure TpfSendMail.Set_ContentType(const Value: WideString);
begin
  fSendMail.ContentType:=Value;
end;

procedure TpfSendMail.Set_Date(const Value: WideString);
Var D : TDateTime;
begin
  Try
    D:=StrToDateTime(Value);
  Except
    D:=Date;
  end;
  fSendMail.Date:=D;
end;

procedure TpfSendMail.Set_FileLog(const Value: WideString);
begin
  fSendMail.FileLog:=Value;
end;

procedure TpfSendMail.Set_From(const Value: WideString);
begin
  fSendMail.From.Text:=Value;
end;

procedure TpfSendMail.Set_Host(const Value: WideString);
begin
  fSendMail.Host:=Value;
end;

procedure TpfSendMail.Set_Password(const Value: WideString);
begin
  fSendMail.Password:=Value;
end;

procedure TpfSendMail.Set_ReplyTo(const Value: WideString);
begin
  fSendMail.AddReplyTo(Value);
end;

procedure TpfSendMail.Set_SaveLog(Value: Integer);
begin
  fSendMail.SaveLog:=Boolean(Value);
end;

procedure TpfSendMail.Set_Subject(const Value: WideString);
begin
  fSendMail.Subject:=Value;
end;

procedure TpfSendMail.SetPriority(Value: Integer);
begin
  fSendMail.SetPriority(Value);
end;

initialization
  TAutoObjectFactory.Create(ComServer, TpfSendMail, Class_pfSendMail,
    ciMultiInstance, tmApartment);
end.

(C)Cotelem Mai 2001   Accueil   Retour