Envoi mail ( lien delphi - outlook)

Résolu
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 - 28 janv. 2008 à 13:06
 FABMC2 - 8 févr. 2008 à 15:58
Je voudrais je vous pris une reponse a ma prblématique

je résultat que je veux obternir est le suivant :

quand je click sur une carte visite je peux envoyer un mail a son propiétaire
l'adresse mail s'intalle d'elle même sur la boite de dialogue outlook d'ou l'interessé pourait inserer son mail, donc la procedure ne fera que faire appel a outlook et lui filer le mail du recepteur, l'adresse de l'expéditeur la personne l'inser d'elle mm
   alors j'ai trouvé le code suivant :



procedure SendOutlookMail; <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>



const




  olMailItem = 0;



var 
outlook: OleVariant;




  vMailItem: variant;



begin




  try



Outlook := GetActiveOleObject('Outlook.Application');




  except



Outlook := CreateOleObject('Outlook.Application');




  end;




  vMailItem := Outlook.CreateItem(olMailItem);




  vMailItem.Recipients.Add('dummy@hotmail.com');




  vMailItem.Subject := 'test email';




  vMailItem.Body := 'This is a test';




  vMailItem.Attachments.Add('C:\temp\sample.txt');




  vMailItem.Send;




 






  VarClear(Outlook);



end;



mais le projet est compilable mais dès que je click sur la carte visite pour l'envoi d'un mail
il me sort un message d'erreur 
pourkoi aucune idée ( ma devise sur ce site est aidez moi je rame )  





je rame aidez moi

38 réponses

Utilisateur anonyme
28 janv. 2008 à 21:45
Bon Nina : on se calme un peu.

envoi mail ( lien delphi - outlook)
le 28/01/2008 15:35:06 :
Raison du beug : ShellApi non mis dans les Uses. Trouvables en 15 sec en tapant Delphi+ShellExecute dans google

Re : envoi mail ( lien delphi - outlook)
le 28/01/2008 20:03:06

procedure TForm1.Button1Click(Sender: TObject);
begin
  SendOutlookMail;
end;

procedure SendOutlookMail;

begin  ShellExecute(0,'open',PChar('mailto:'+Form1.Edit1.Text+'&Subject=&body='),nil,nil,sw_Normal);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text := 'unquidam@truc.com' ;
end;

Ca compile pas ???

Réponse :

procedure SendOutlookMail;


begin  ShellExecute(0,'open',PChar('mailto:'+Form1.Edit1.Text+'&Subject=&body='),nil,nil,sw_Normal);


end;

A mettre avant

procedure TForm1.Button1Click(Sender: TObject);

begin

  SendOutlookMail;

end;

Soit finallement

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellApi;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure SendOutlookMail;
begin
  ShellExecute(0,'open',PChar('mailto:'+Form1.Edit1.Text+'&Subject=&body='),nil,nil,sw_Normal);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SendOutlookMail;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text := 'unquidam@truc.com' ;
end;

end.

J'espère que la simplicité de l'erreur et de la solutionca t'ouvrira les yeux sur le fait que tu es a des milliards d'années lumières d'avoir les compétences pour faire une application commerciale. D'ou le sans commentaires, car justement c'est ce qui fait la différence entre un débutant et un professionnel : il y en a qui a les compétences l'autre non.

Nina il faut que tu comprennes que des gens qui disent "Je sais pas"," je trouve pas","faites moi ceci faites moi cela","désolé je suis un débutant bla bla bla", on a ca à longueur de journée et ca devient un peu saoulant à force. Codes Sources est là pour aider les gens mais aider les gens ca ne signifient pas faire leur job à leur place, et ca n'empche pas les gens de chercher : les erreurs que tu signales sont référencés sur des milliards de sites car ils sont rencontrés pour tout les débutants : le tout est de chercher le pourquoi du comment. Sache que de passer des heures voirs des jours pour solutionner des erreurs aussi simples est normal : tout les débutants passent par là et il faut des mois de coding intensif pour dépasse ce stade. Ce qui est sur c'est que l'on ne peut pas répondre à toutes les questions élémentaires pour la 101 niemes fois sous prétextes que quelqu'un est débutant.

En espérant t'avoir fais comprendre les choses avec plus de diplomatie.

A++
3
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
28 janv. 2008 à 22:05
Il est sympa ce Francky,

"ah bon tu m'as fais un programme toi rapel moi lekel ( vache a lait toi mm)
evite stp me m'ecrire"
C' est ce que je dis: je suis une vache à lait! Je ne t' ai pas appelé de la sorte et je n' ai pas l' habitude de venir sur delphifr traiter les autres de quoi que ce soit, delphifr est un outil de travail pour moi, c' est pas mIRC ici ...
J' attends tes excuses ...

Cari te donnais :
procedure TForm1.FormCreate(Sender: TObject);
  begin
  Edit1.Text := [mailto:'unquidam@truc.com' 'unquidam@truc.com'] ;
end;


Tu nous dis que tu as le message d' erreur suivant:
[Erreur] Unit1.pas(28): Identificateur non déclaré : 'Edit1'

Ça veut simplement dire que tu as découvert Delphi il y a de cela disons ... depuis aujourd' hui!!!

Ok, je veux bien aider à résoudre ton problème:
1 ) Ouvre le fichier d' aide à Delphi puis comence par lire depuis le début.
2 ) Ouvre un nouveau projet et insère un compo, essayant de te familiariser avec les propriétés et les événements de celui-ci. Ensuite passe au compo suivant.
3 ) Essaye sur msdn.com de trouver des infos sur Outlook et son utilisation via les commandes OLE.
4 ) Essaye cette fois de résoudre ton problème, tu vas voir, ça va être  plus compréhensible, du moins tu sauras utiliser les réponses données.

Non, je ne moque pas de toi: se sont les étapes necessaires, désolé, je suis passé par lá, je crois que c' est le cas pour tout le monde et ça, on pourra pas le faire pour toi ...

Maurício
3
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 13:25
le message qui sort est le suivant

EOLSYS ERROR    Opération non disponible

je rame aidez moi
0
Utilisateur anonyme
28 janv. 2008 à 13:58
Salut

Déja quelqu'un qui dit pas bonjour et qui commence sa phrase par "Je voudrais je vous pris une reponse a ma prblématique", on a pas trop envie de l'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 14:04
pardon mais je suis sous pression vraiment dsl

je rame aidez moi
0
Utilisateur anonyme
28 janv. 2008 à 14:19
Tu rames, tu rames : Ben moi aussi je rame et alors je dis bien bonjour, je n'ai aucune exigence ma devise sur ce site est aidez moi je rame ), je ne poste pas deux fois le meme message et je demande pas aux gens de jouer aux Madames Irmas (Tu donnes meme pas le message d'erreur).
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 14:57
EOLSYS ERROR    Opération non disponible
je l'ai donné le message d'erreur Mr FRANKY


Mais pas grave je le donne !


merci d'avance pour votre aide

je rame aidez moi
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 janv. 2008 à 14:58
Bein ouè, on rame tous...
Si on ramait pas, on ne serait pas là. 

Essaie quand même ça:


uses ShellApi;

procedure SendOutlookMail;
  var Adresse : String;
  begin
  Adresse :'une URL';
  ShellExecute(0,'open',PChar('mailto:'+Adresse+'&Subject=&body='),nil,nil,sw_Normal);
end;
0
Utilisateur anonyme
28 janv. 2008 à 15:06
Hey tu sur d'avoir écris correctement le message d'erreur : car il n'est référencé nul part. Le seul lien qui pointe sous google vers EOLSYS ERROR est ici même. A priori tu es la seule à avoir rencontré ce problème. A priori le problème ne vient pas de ton code car il semble bon.

Entre toi et moi : utiliser outlook n'est pas très judicieux. Tu devrais te tourner vers les composants Indy. OutLook n'est pas spécialement très utilisé mais au sein des entreprises.
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 15:19
Merci franky


mais vois tu je voudrais créer un produit destiné au entreprise
l'idée et une fois qu'on click sur une carte ou une touche on peut envoyer un mail a la personne
mais pour envoyer un mail a une personne il faut deux paramétress
le mail de la personne en question---- disponible sur delphi
et le mail de celui qui envoie ( élément extérieur ) que l'expéditeur entre au moment des faits
 c'est pour ça que je voulais un code qui ne faisait que appeler outlook et inserer l'adresse receptrice dans son emplacement mais pour le message et l'adresse de l'expéditeur ne seront pas du ressort du prgramme delphi
et le message complet est le suivant :

notification d'une exception du débogeur
le projet projet1.exe à porvoqué une classe d'exception EOLeSysrror avec le message 'opération indiponible 'processus stoppé. utiliser pas à pas ou éxecuter pour continuer 

merci encore franky
je rame aidez moi
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 15:29
je rame aidez moi
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 15:35
le mail est parti vide pardon


 


Pour votre code lorsque je l'ecris tel qu'il est je reçois ces deux messages



Adresse :'une URL';

:= attendu mais : trouvé ( le premier message)

begin attendu mais end trouvé ( le second)
le programme ne se compile pas 


merci
 

je rame aidez moi
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 janv. 2008 à 15:41
Pardon...

uses ShellApi;





procedure SendOutlookMail;
  var Adresse : String;
  begin
  Adresse :=  'Une URL';
  ShellExecute(0,'open',PChar('mailto:'+Adresse+'&Subject=&body='),nil,nil,sw_Normal);
end;
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 15:43
votre code marche
mais j'aboutis en cliquant sur yahoo ( qui est ma boite de messagerie par défaut)
mais ce la suppose que j'ai le mail de la personne sur ma boite mail ce qui n'est pas le cas
les adresses mails doivent êtres gérées par delphi, c'est le programme delphi qui donne les adresse une a une toutes fois qu'il est sollicité ( en cliquant sur un bouton) et qui l'insert directement dans le champs recépeteur de outlook
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 janv. 2008 à 15:58
uses ShellApi;



procedure TForm1.FormCreate(Sender: TObject);
  begin
  Edit1.Text :=
[mailto:'unquidam@truc.com'
'unquidam@truc.com'
]
;
end;



procedure SendOutlookMail;
  begin
  ShellExecute(0,'open',PChar('mailto:'+Form1.Edit1.Text+'&Subject=&body='),nil,nil,sw_Normal);
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
SendOutlookMail;
end;
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 janv. 2008 à 16:02
Chez moi, ça marche. J'ai bien « [mailto:unquidam@truc.com unquidam@truc.com]; » dans le Destinataire...
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
28 janv. 2008 à 17:29
Haaa le OleAutomation ...

ça me rappelle que j' ai cette fonctionnalité dans certaines de mes appli (Ole server, comme Outlook Word etc ...).

Le problème devrait très rapidement trouver solution avec illustration après recherche sur google.com que je ferai pas, j' ai plus de lait ...

A+
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 20:03
[Erreur] Unit1.pas(26): Identificateur non déclaré : 'FormCreate'
[Erreur] Unit1.pas(28): Identificateur non déclaré : 'Edit1'
[Erreur] Unit1.pas(28[Erreur] Unit1.pas(33): Types incompatibles : 'String' et 'Text'): '(' attendu(e) mais ':=' trouvé(e)
[Erreur] Unit1.pas(41): '.' attendu(e) mais ';' trouvé(e)
[Erreur fatale] Project1.dpr(5): Impossible de compiler l'unité utilisée 'Unit1.pas'
voila le message qui me sort ou j'ai pu faire une betise et voila le code tel que je l'ai ecris :
ses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellApi;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := 'unquidam@truc.com' ;
end;

procedure SendOutlookMail;
begin
ShellExecute(0,'open',PChar('mailto:'+Form1.Edit1.Text+'&Subject=&body='),nil,nil,sw_Normal);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SendOutlookMail;
end;

end;

end.
0
nina0amina Messages postés 23 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
28 janv. 2008 à 20:59
non rien à faire je viens d'essayer un autre code le voici:
uses
ComObj;

procedure EnvoyerCourriel;
const
olMailItem = 0;
olByValue = 1;

var
OutlookApp, MailItem, MyAttachments: OLEVariant;

begin
try
OutlookApp := GetActiveOleObject('Outlook.Application');
except
OutlookApp := CreateOleObject('Outlook.Application');
end;

try
MailItem := OutlookApp.CreateItem(olMailItem);
MailItem.To := 'nom@monserveur.ca';
MailItem.Subject := 'Mon sujet';
MailItem.Body := 'Mon message';
myAttachments := MailItem.Attachments;
myAttachments.Add('C:\test.txt', olByValue, 1, 'Mon fichier');
MailItem.Display(false);

finally
myAttachments := VarNull;
OutlookApp := VarNull;
end;
end;

là encore je reçois le même message d'erreur c'est à dire
eolesyserror ( le prog reste se compile et toutes les autres fonctionnalités fonctionne sauf l'envoi du mail via outlook )
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 janv. 2008 à 21:00
:))))
j'suis nul !

Et tu obtiens ce que tu voulais?
0
Rejoignez-nous