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.
|
|