1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
unit UnitEmail;
//Programme par Yoann
//http://delphipage.free.fr/
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdMessageClient, IdSMTP, IdExplicitTLSClientServerBase, IdSMTPBase,
IdAttachmentFile, IDAttachment, JvExStdCtrls, JvRichEdit, RxRichEd, ComCtrls, OleCtrls, SHDocVw,idtext;
type
TFormEmail = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
EditExpediteur: TEdit;
EditDestinataire: TEdit;
EditAttachement: TEdit;
EditSujet: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
OpenDialog1: TOpenDialog;
EditEnCommunication: TEdit;
Label9: TLabel;
WebBrowser1: TWebBrowser;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
FormEmail: TFormEmail;
implementation
uses
UnitResource, UnitPetitesRoutines;
{$R *.DFM}
procedure TFormEmail.Button3Click(Sender: TObject);
begin
Close; //Ferme le programme
end;
procedure TFormEmail.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
EditAttachement.Text:=OpenDialog1.FileName; //Edit affiche le fichier choisit
end;
procedure TFormEmail.Button2Click(Sender: TObject);
Var
Message: TStrings;
Attachement : TIDAttachment;
IDText1 : TiDText;
IDText2 : TiDText;
begin
Screen.Cursor:=crHourGlass; //Curseur sablier
IdMessage1.Clear; //Efface l'entête et le corps du message
IdMessage1.From.Text :=EditExpediteur.Text; //Adresse email de l'expediteur
IdMessage1.ReplyTo.EMailAddresses:=EditExpediteur.Text; //Adresse email où le destinataire pourra répondre
IdMessage1.Recipients.EMailAddresses:=EditDestinataire.Text; //Adresse email du destinataire
IdMessage1.CCList.EMailAddresses:=EditEnCommunication.Text;
//IdMessage1.ContentDisposition
//IdMessage1.contentType :='multipart/alternative';
IdMessage1.contentType :='multipart/mixed';
IdMessage1.Date:=Date; //Date de l'envoi du message
IdMessage1.Subject:=EditSujet.Text; //Sujet du message
IdMessage1.Priority:=mpNormal; //Priorité du message
IdMessage1.Organization:=_Ident;//EditUserName.text;//Nom d'utilisateur, s'identifier, anti-spam
memo1.Lines.LoadFromFile(Dossier+'trames\Cde.html'); //Corps du message
Message := memo1.lines;
//Ici on va créer les différentes parties du message
//au cas où le client ne gère pas les messages HTML
// With TIdText.create(IdMessage1.Messageparts, Message) do
// begin
// ContentType := 'Text/plain';
// ContentTransfer := 'quoted-printable';
// Body.insert(0, 'Ce message est un message HTML. Configurez votre client de courrier électronique');
// end;
(* en principe la partie ci-dessous devrait être utiliée *)
// IdText1 := TIdText.create(IdMessage1.Messageparts, Message);
// IdText1.ContentType := 'Text/plain';
// IdText1.ContentTransfer := 'quoted-printable';
// IdText1.Body.insert(0, 'Ce message est un message HTML. Configurez votre client de courrier électronique');
IdText2 := TIdText.create(IdMessage1.Messageparts, Message);
IdText2.ContentType := 'Text/html; charset=iso-8859-1';
IdText2.ContentTransfer := 'quoted-printable';
// indy version 10, ces 5 lignes inclu une image (logo) dans le fichier Html
// instruction dans le fichier Html <img src="cid:logo.jpg">
// Attachement := TidAttachmentFile.create(IdMessage1.MessageParts,Dossier+'trames\logo.jpg');
// Attachement.ContentType := 'image/jpg';
// Attachement.ContentID:= 'toto'; // valeurs particulières ContentID sont arbitraires,ils sont tous uniques
// Attachement.ContentDisposition := 'inline';
// Attachement.FileName := 'logo.jpg';
if not (EditAttachement.Text='') then TIdAttachmentFile.Create(IdMessage1.MessageParts,EditAttachement.Text); //Attache le fichier
//Connexion au serveur smtp Indy10, vu sur Internet
IdSMTP1.AuthType:=atDefault;
IdSMTP1.Host:=_Host; //EditHost.text;//'smtp.free.fr'; //Hôte (par exemple pour Free : smtp.free.fr)
IdSMTP1.Port:=StrToInt(_Port); //25; //Port (par exemple pour Free : 25) Port (par exemple 587 pour gmail , 25 pour yahoo, 25
pour free)
IdSMTP1.UserName:=_Ident; //EditUserName.text;//Nom d'utilisateur
IdSMTP1.Password:=_Wordpass; //EditPassWord.text;//Mot de passe
try
try
IdSMTP1.Connect; //Connexion
IdSMTP1.Send(IdMessage1); //Envoi du message
except
on e:exception do MessageDlg(e.Message, mtError, [mbOK], 0);
end;
finally
IdSMTP1.Disconnect; //Déconnexion
end;
Screen.Cursor:=crDefault; //Curseur par défaut
end;
end. |
Partager