Shellexecute mailto vers plusieurs adresses email

PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021 - 16 janv. 2011 à 17:45
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 - 20 févr. 2011 à 19:48
Salut,
Est-il possible avec shellapi d'envoyer un email vers plusieures adresses email?
Comment y ajouter toujours avec shellapi un fichier attaché?
Merci d'avance,
PhilLu

18 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
17 janv. 2011 à 11:30
Salut,

oui ...
regarde cette page

et aussi celle-ci


[hr]@+Cirec
[hr]
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
20 janv. 2011 à 16:41
Oui, super!!!
Le problème c'est que je souhaite envoyer une variable concernant:
ShellExecute(Self.Handle,
nil,
'mailto:' +
'me@me.com' +
'?Subject=Test Message Subject' + //le sujet
'&Body=Test Message Body' +
'&Attach="c:\Mail //le fichier attaché

Est-ce possible?
Merci d'avance
PhilLu
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
20 janv. 2011 à 21:31
soit un peut plus précis !
tu la veux ou ta variable ?


[hr]@+Cirec
[hr]
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
20 janv. 2011 à 22:05
Eh bien:
A la place de: test message subject'
(le sujet du message)
Et a la place de: C:\Mail
(le fichier attaché)
J'ai essayé sans succes!
Merci d'avance pour ta réponse!!!
PhilLu
0

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

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
21 janv. 2011 à 00:05
tu peux faire un truc comme ceci:

const
  MailToStr = 'mailto:%s?Subject=%s&Body=%s&Attach="%s';
var
  VarEMail, VarSubject, VarBody, VarAttach: string;
begin
  ShellExecute(Self.Handle, nil, Format(MailToStr, [VarEMail, VarSubject, VarBody, VarAttach]), ...
end;


tu peux aussi remplacer VarBody par Memo1.Text
par exemple

chaque %s dans la constante MailToStr représente une variable de type string

[hr]@+Cirec
[hr]
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
21 janv. 2011 à 13:37
Salut,
Ca me semblait ok mais après ce codej'ai encore un soucis:
const
MailToStr = 'mailto:%s?Subject=%s&Body=%s&Attach="%s';

Var EMail, VarSubject, VarBody, VarAttach: string;

maintenant:=Copy(Datetostr(now),0,2)+'_'+Copy(Datetostr(now),4,2)+'_'+Copy(Datetostr(now),7,4);// retourne la ate en format compatible pour être inclus dans un nom de fichier
Form1.GetFormImage.SaveToFile('Résultats du '+maintenant+'.jpg'); // capture la fenètre de l'appli et la sauve dans un fichier jpg
VarAttach:='Résultats du '+maintenant+'.jpg'; //assigne le fichier ataché
VarEMail:='philippe.luyten@skynet.be'; //assigne le destinataire
VarSubject:='Résultats du '+maintenant+'.jpg'; //assigne le sujet de l'email
VarBody:='Voir fichier en annexe'; //assigne le corps du texte de l'email

ShellExecute(Self.Handle, nil, Format(MailToStr, [VarEMail, VarSubject, VarBody, VarAttach]);

Voilà l'erreur retournée:
Retourne derrière cette ligne: Types incompatibles: 'String' et 'PAnsiChar'

Une idée?
PhilLu
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
21 janv. 2011 à 13:48
ah oui pardon !

PChar(Format(MailToStr, [VarEMail, VarSubject, VarBody, VarAttach]))



[hr]@+Cirec
[hr]
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
21 janv. 2011 à 14:03
ps:
ta méthode pour obtenir la date en format compatible il y a plus simple:

[hr]  maintenant:= Copy(Datetostr(now),0,2)+'_'+Copy(Datetostr(now),4,2)+'_'+Copy(Datetostr(now),7,4); // 

  maintenant2 : = FormatDateTime('dd_mm_yyyy', Now);
  ShowMessageFmt('ta méthode :%s'+#13#13#10+'ma méthode :%s', [maintenant, maintenant2]);
[hr]

voilà je crois que c'est tout

penses à cliquer sur "Réponse Acceptée" si ça fixe ton problème. Merci


[hr]@+Cirec
[hr]
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
21 janv. 2011 à 14:20
ah ben non !!

cette ligne :
Form1.GetFormImage.SaveToFile('Résultats du '+maintenant+'.jpg');

n'enregistre pas l'image au format JPEG mais au format Bitmap(.bmp) avec une extension .jpg !!!!!

puisque "GetFormImage" renvoie un TBitmap

ce qui posera forcement un problème lors de la lecture.

et en plus, ça occasionne une fuite de mémoire ... pas cool

il faudrait plutôt procéder ainsi:
[hr]  with Form1.GetFormImage [b]do

  try
    /bSaveToFile('Test.bmp');
  [b]finally
    /bFree;
  end;
[hr]

bon cette fois je crois que c'est tout

[hr]@+Cirec
[hr]
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
22 janv. 2011 à 22:44
Donc pas moyen de faire une capture en jpg?
Plus léger à envoyer!!!
Encore merci!
PhilLu
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 janv. 2011 à 12:08
Mais si

[hr]uses JPEG;


procedure TForm1.Button2Click(Sender: TObject);
[b]var
  /baBMP: TBitmap;
  aJPEG: TJPEGImage;
[b]begin
  /baJPEG := TJPEGImage.Create;
  [b]try
    /baBMP := Form1.GetFormImage;
    with aBMP [b]do
    try
      /baJPEG.Assign(aBMP);
      aJPEG.SaveToFile('Test.jpg');
    [b]finally
      /bFree;
    end;
  [b]finally
    /baJPEG.Free;
  end;
end;
[hr]
voilà, ceci devrait répondre à ton problème

n'oubliez pas de cliquer sur réponse acceptée ...
[hr]@+Cirec
[hr]
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
27 janv. 2011 à 18:04
Voici mon code, tout est ok sauf l'envoi du fichier attaché?!?
Qui peux m'aider?

procedure TForm1.Button3Click(Sender: TObject);
begin
maintenant:=Copy(Datetostr(now),0,2)+'_'+Copy(Datetostr(now),4,2)+'_'+Copy(Datetostr(now),7,4);
// capture de l'appli et sauvegarde en jpg -> ok
begin
aJPEG := TJPEGImage.Create;
try
aBMP := Form1.GetFormImage;
with aBMP do
try
aJPEG.Assign(aBMP);
aJPEG.SaveToFile('Résultats du '+maintenant+'.jpg');
finally
Free;
end;
finally
aJPEG.Free;
end;

//remplissage des variables
a := ExtractFilePath(Application.ExeName) ;
b := ExtractFileName('Résultats du '+maintenant+'.jpg');
c := a+b;
VarAttach:=c;
VarEMail:='philippe.luyten@skynet.be;olivier.dony@skynet.be';
VarSubject:='Résultats du '+maintenant+'.jpg';
VarBody:='Voir fichier en annexe';

//appel du shell (ok sauf fichier joint)???
ShellExecute(Self.Handle, nil, PChar(Format(MailToStr, [VarEMail, VarSubject, VarBody, VarAttach])),nil,nil,SW_NORMAL);
end;
end;

Il doit y avoir un petit détail qui m'échappe!?! mais quoi???

Merci d'avance,
PhilLu
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
27 janv. 2011 à 20:49
Modifie la constante "MailToStr" comme suit:
const
MailToStr = 'mailto:%s?Subject=%s&Body=%s&Attach="%s"';


mais tu pouvais trouver l'erreur par toi même en te servant du premier lien que je t'ai donné... j'ai pas fait autrement ...

ps: pas testé ... mais ça devrait coller !!
n'oubliez pas de cliquer sur réponse acceptée ...
[hr]@+Cirec
[hr]
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
27 janv. 2011 à 22:04
non, tjrs pareil!?!
:-(
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
28 janv. 2011 à 07:38
Bonjour

De mémoire, il me semble bien que le ShellExecute n'est pas capable de gérer les pièces jointes, du moins pas dans tous les cas. Il faudrait plutot mieux se tourner vers d'autres solutions comme CDO(Collaboration Data Objects) ou MAPI (Messaging Application Programming Interface) pour effectuer se type de tâche.

Cordialement.[hr]"L'imagination est plus importante que le savoir." Albert Einstein
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
28 janv. 2011 à 10:08
ou alors ne supporte pas les noms longs ou contenant des espaces???
Je tests...
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
3 févr. 2011 à 23:01
Alors ces tests ? sont-ils concluants ?

Cordialement.[hr]"L'imagination est plus importante que le savoir." Albert Einstein
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
20 févr. 2011 à 19:48
Bonsoir

Apparemment, pas concluants...

Bon et si tu remplaçais "Attach=" par "Att:filename=".

Cordialement.[hr]"L'imagination est plus importante que le savoir." Albert Einstein
0
Rejoignez-nous