Comment on fait pour envoyer un mail avec delphi? [Résolu]

Messages postés
26
Date d'inscription
vendredi 10 septembre 2010
Dernière intervention
5 juillet 2011
- - Dernière réponse : adnaner
Messages postés
26
Date d'inscription
vendredi 10 septembre 2010
Dernière intervention
5 juillet 2011
- 8 mai 2011 à 15:27
Bonjour,
comment on fait pour envoyer un mail avec delphi?
voici l'un des codes que g tester mais je n'arrive pas a envoyer un email!

unit SendForm;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls,
  IdComponent, IdTCPConnection, IdTCPClient,
  IdMessageClient, IdSMTP, IdBaseComponent, IdMessage;

type
  TMainForm = class(TForm)
    Panel2: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    eName: TEdit;
    Label2: TLabel;
    eSubject: TEdit;
    Label3: TLabel;
    BbtnAddToList: TButton;
    ListAddr: TListBox;
    BtnRemove: TButton;
    Label5: TLabel;
    eFrom: TEdit;
    BtnSendAll: TButton;
    eServer: TEdit;
    MailMessage: TIdMessage;
    Mail: TIdSMTP;
    Label4: TLabel;
    Label6: TLabel;
    eUserName: TEdit;
    Password: TLabel;
    ePassword: TEdit;
    reMessageText: TRichEdit;
    ListLog: TListBox;
    Label7: TLabel;
    Label8: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnSendAllClick(Sender: TObject);
    procedure BbtnAddToListClick(Sender: TObject);
    procedure BtnRemoveClick(Sender: TObject);
    procedure MailConnected(Sender: TObject);
    procedure MailDisconnected(Sender: TObject);
    procedure MailStatus(axSender: TObject; const axStatus: TIdStatus;
      const asStatusText: String);
    procedure MailWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCountMax: Integer);
    procedure MailWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
  private
    FileName: string;
  end;

var
  MainForm: TMainForm;

implementation

{$R *.DFM}

procedure TMainForm.FormCreate(Sender: TObject);
begin
 Application.Title:='Simple Mail';
 
 FileName:=ChangeFileExt(Application.ExeName, '.txt');
 try
  ListAddr.Items.LoadFromFile(FileName);
 except
  ListAddr.Items.SaveToFile(FileName);
 end;
 ListLog.Clear;
 ListLog.Items.Add('Addresses: '+IntToStr(ListAddr.Items.Count));
 
 ListAddr.ItemIndex:=0;
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin

 ListAddr.Items.SaveToFile(FileName);
end;

const
  BccInMsg = 30;

procedure TMainForm.BtnSendAllClick(Sender: TObject);
var
 nItem: integer;
 Res: Word;
begin
 if ListAddr.Items.Count=0
 then
  begin
   ShowMessage('Ñïèñîê ïîëó÷àòåëåé ïóñò!');
   Exit;
  end;

 Res:=MessageDlg('Start sending from item '+
   IntToStr(ListAddr.ItemIndex+1)+' ('+
   ListAddr.Items [ListAddr.ItemIndex]+')?'#13+
   'Èëè íå íà÷èíàòü ñ ïåðâîãî àäðåñà.', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
 if Res=mrCancel
 then Exit;
 if Res=mrYes
 then nItem:=ListAddr.ItemIndex  
ItemIndex
 else nItem:=0; 

 Mail.Host:=eServer.Text; 
 Mail.Username:=eUserName.Text;
 if ePassword.Text<>''
 then
  begin
   Mail.Password:=ePassword.Text; 
   Mail.AuthenticationType:=atLogin; 
  end;
 Mail.Connect;

 try
 
  MailMessage.From.Name:=eFrom.Text; 
  MailMessage.Subject:=eSubject.Text; 
  MailMessage.Body.SetText(reMessageText.Lines.GetText);
  MailMessage.Body.Insert(0,'Hello!');
  while nItem<ListAddr.Items.Count do
   begin
    
    Application.ProcessMessages;
    ListAddr.ItemIndex:=nItem;
    MailMessage.Body[0]:='Hello "'+ListAddr.Items[nItem]+'"!';
    MailMessage.Recipients.EMailAddresses:=ListAddr.Items[nItem];
    Mail.Send(MailMessage);
    inc(nItem);
   end;
 finally
  Mail.Disconnect;
 end;
end;

procedure TMainForm.BbtnAddToListClick(Sender: TObject);
begin
 ListAddr.ItemIndex:=ListAddr.Items.Add(eName.Text);
 ListLog.Clear;
 ListLog.Items.Add('Addresses: '+IntToStr(ListAddr.Items.Count)); 
end;

procedure TMainForm.BtnRemoveClick(Sender: TObject);
begin

 eName.Text:=ListAddr.Items[ListAddr.ItemIndex];
 ListAddr.Items.Delete(ListAddr.ItemIndex);
 ListLog.Clear;
 ListLog.Items.Add('Addresses: '+IntToStr(ListAddr.Items.Count));
end;

procedure TMainForm.MailConnected(Sender: TObject);
begin
 ListLog.Items.Add('Connected to host...');
end;

procedure TMainForm.MailDisconnected(Sender: TObject);
begin
 ListLog.Items.Add('Disconnected from host...');
end;

procedure TMainForm.MailStatus(axSender: TObject;
  const axStatus: TIdStatus; const asStatusText: String);
begin
 ListLog.Items.Add(asStatusText);
end;

procedure TMainForm.MailWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
 ListLog.Items.Add('Sending to: '+MailMessage.Recipients.EMailAddresses);
end;

procedure TMainForm.MailWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
 ListLog.Items.Add('Done...');
end;

end.


je pense que le problème et dans le serveur smtp que je ne connais pas ce que ci!
j'ai inscrit ici et on ma donné les information suivant:
------------------------
Serveur SMTP:
in.mailjet.com

Utilisateur (Clé API):
ee57e10a3d6d32985dd322d69e030de1

Mot de passe (Clé secrète):
**************

Port:
25 ou 587 (certains hébergeurs bloquent le port 25)

Utiliser TLS:
oui
-----------------------
mais je n'arrive toujour pas a envoyé un petite e-mail, si quelqu'un peut me dire comment fair!
merci.

_______________________
have fun...
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
3
Merci
Salut,

il y a tant de méthodes! On en a discuté plusieurs fois et il suffit de chercher: passant par Outlook, via MAPI ou bien mon préféré Indy mais aussi le plus compliqué.

A+


Composants Cindy pour Delphi

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_MAURICIO
Messages postés
26
Date d'inscription
vendredi 10 septembre 2010
Dernière intervention
5 juillet 2011
3
Merci
salut,

...mais aussi le plus compliqué.

si toi tu dis que si compliqué donc si vraiment compliqué
mais j'ai trouve le moyen d'envoyer un e-mail plus facilement, on utilisant php

form1.webbrowser1.navigate(site/mail.php$destinataire='+edit1.text+'&subject='+edit2.text+'&body='+memo1.Text);


et ça marche très bien


A+
___________________
have fun...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de adnaner
Messages postés
26
Date d'inscription
vendredi 10 septembre 2010
Dernière intervention
5 juillet 2011
0
Merci
salut,

merci pour ta repende mauricio, le problème né pas dans les codes avec mes recherche j'ai trouvé des exemples de comment envoyé un e-mail avec Outlook, MAPI et Indy et..., mais le problème est que je n'arrive pas à envoyer un e-mail avec tous les exemples que j'ai trouvé,seuls les exemples de Outlook, MAPI qui marche, mais ce de Indy ne marche pas il ma affiche des erreur de genre socket error #10060 connection timed out.
et l'un des code que j'ai trouver se trouve plus haut mais je n'arrive pas a me connecter avec le serveur smtp!
merci pour vous réponse.

_______________________
have fun...
Commenter la réponse de adnaner

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.