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