créer un mail par une ligne de code C# [résolu]

créer un mail par une ligne de code C# [résolu] - C#/.NET managed - Programmation

Marsh Posté le 04-05-2005 à 14:45:47    

Bonjour,
Voici exactement ce que je souhaite faire :
Après la saisie d'un objet, de destinataires et de documents je dois générer un courriel.
Le plus intéressant pour moi est d'appeler le client mail par défaut dans Windows (comme un lien mailto: dans une page Web).
 
 
J'ai fait quelques recherches mais je n'ai rien trouvé correspondant à mon besoin.
Est-il possible d'appeler le client mail par défaut en spécifiant les points suivants :
-expéditeur
-destinataire
-titre
-pièces jointes
-texte
 
 
Et autre question : Existe-t-il un format de fichier de courriels ? Cela doit me permettre de créer un courriel générique, avec mise en forme, police de caractère, ...
 
 
Par avance merci.


Message édité par Gaxx le 16-05-2005 à 11:24:43
Reply

Marsh Posté le 04-05-2005 à 14:45:47   

Reply

Marsh Posté le 04-05-2005 à 14:58:31    

using System.Web.Mail ??non c'est pas ce que tu veux?

Reply

Marsh Posté le 04-05-2005 à 15:06:44    

cesarr89 a écrit :

using System.Web.Mail ??non c'est pas ce que tu veux?


 
Je ne suis pas sûr car System.Web.Mail permet de créer et d'envoyer un mail via un smtp en ligne de microsoft à ce que j'ai compris.
En fait il faut que l'utilisateur de mon programme ait la main sur l'envoi du courriel. Et pour pouvoir tracer les envois, il est nécessaire de passer par un client mail.
 
Je pourrais le faire en utilisant les COM de Outlook par exemple mais ça me paraît un peu lourd pour ce que je veut faire. En plus ça limite le client mail géré à Outlook.  
 
Donc si il y a un moyen de faire comme les liens html "mailto:" ça m'arrangerai grandement.
 
NB : l'ajout de fichiers en pièces jointes est un plus, l'utilisateur pourrait le faire manuellement.

Reply

Marsh Posté le 04-05-2005 à 15:08:12    

Non, aucun moyen. Il faut obligatoirement envoyer le mail côté serveur...

Reply

Marsh Posté le 04-05-2005 à 15:11:34    

Citation :

Il faut obligatoirement envoyer le mail côté serveur...


 
Comment ca coté serveur??

Reply

Marsh Posté le 04-05-2005 à 15:11:55    

FlorentG a écrit :

Non, aucun moyen. Il faut obligatoirement envoyer le mail côté serveur...


 
Aïe !  :cry:  
 
Et même en utilisant les COM Outlook ???

Reply

Marsh Posté le 04-05-2005 à 15:35:21    

Bon, à prioris avec les COM de Outlook c'est possible.
J'y travaille donc je ne peut pas encore en être sûr.  
 
 
Quel est le format de fichier des mails ?

Reply

Marsh Posté le 04-05-2005 à 15:41:58    

email n'est pas un format de fichier...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 04-05-2005 à 16:05:29    

cesarr89 a écrit :

Comment ca coté serveur??


Bah côté serveur :??:

Gaxx a écrit :

Bon, à prioris avec les COM de Outlook c'est possible.
J'y travaille donc je ne peut pas encore en être sûr.  
 
 
Quel est le format de fichier des mails ?


Si c'est pour un intranet, y'a moyen. Donc avec COM tu créer un mail etc. Par contre je pige pas la question sur le format de fichier, vu qu'on s'en fout.
Sinon si c'est pour Internet c'est même la peine :(

Reply

Marsh Posté le 04-05-2005 à 16:12:57    


FlorentG =>

Citation :

Sinon si c'est pour Internet c'est même la peine :(


Je suis bien en intranet, et même si un jour mon appli est portée en n-tiers le mail sera généré sur le poste client.
Donc pour ça c'est bon.
 
 
JagStang =>

Citation :

email n'est pas un format de fichier...


& FlorentG =>

Citation :

Par contre je pige pas la question sur le format de fichier, vu qu'on s'en fout.


Oui, je me suis mal exprimé : il existe un format ".eml" qui est reconnu par Outlook express et permet par exemple de créer un "conteneur" autour du texte en lui même (ici : mettre le logo de la société).
 
Sur ma machine j'ai Outlook express (par défaut) et Outlook 2003, et les fichiers ".eml" sont pris par Outlook express.
 
Y a-t-il un équivalent des ".eml" pour Outlook ?

Reply

Marsh Posté le 04-05-2005 à 16:12:57   

Reply

Marsh Posté le 04-05-2005 à 16:15:18    

c'est un format propriétaire


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 04-05-2005 à 16:22:36    

Ok, merci.
 
Donc il ne me reste plus qu'à faire le corps du courriel en HTML pour y placer le logo de la société et d'autres fioritures.
 
@+

Reply

Marsh Posté le 04-05-2005 à 16:23:27    

Gaxx a écrit :

Y a-t-il un équivalent des ".eml" pour Outlook ?


Oui, mais si tu fais ça via com, le format de fichier importe peu. Tu instancies côté client un Outlook, tu créer le mail et t'affiche :) Au pire tu lui dis d'enregistrer en .eml, mais tout ça se fait automatiquement :)


Message édité par FlorentG le 04-05-2005 à 16:23:35
Reply

Marsh Posté le 04-05-2005 à 17:05:29    

FlorentG a écrit :

Oui, mais si tu fais ça via com, le format de fichier importe peu. Tu instancies côté client un Outlook, tu créer le mail et t'affiche :) Au pire tu lui dis d'enregistrer en .eml, mais tout ça se fait automatiquement :)


 
Quel est le format en question ?
Ce que je peut (peut-être) faire c'est :
1- créer un modèle de courriel dans un fichier
2- copier le fichier et remplir la copie avec mon texte
3- créer un courriel en plaçant la copie en pièce jointe (normalement ce fichier s'affiche dans le corps du courriel)
4- placer mes autres fichiers en pièces jointes
5- envoyer le paquet à Outlook
6- l'utilisateur assume l'envoi
 
C'est une alternative au format HTML...


Message édité par Gaxx le 04-05-2005 à 17:07:54
Reply

Marsh Posté le 05-05-2005 à 12:07:32    

Comme dit, tu créer ton modèle dans outlook, tu l'enregistre. Puis sur le poste client, tu instancies via COM un outlook, tu lui fait ouvrir ton modèle, tu remplis les différents champs, et tu envoi

Reply

Marsh Posté le 11-05-2005 à 16:57:05    

FlorentG a écrit :

Comme dit, tu créer ton modèle dans outlook, tu l'enregistre. Puis sur le poste client, tu instancies via COM un outlook, tu lui fait ouvrir ton modèle, tu remplis les différents champs, et tu envoi


 
De retour après une petite absence...
J'ai trouvé comment faire le modèle outlook, à présent je vais passer par un document intermédiaire pour stocker le contenu du courriel. Je vais récupérer le texte et le coller dans un courriel créé à partir du modèle (contenant le logo, la raison sociale, les coordonnées, ... de la boite). Pour des raisons d'assurance qualité il faut que je stocke le contenu du courriel envoyé.
 
Voilà ce que je veut faire :  
1- permettre à l'utilisateur de taper le texte de son courriel dans un fichier (doc, rtf ou txt mais word de préférence pour la mise en page)
2- lors de la création du courriel, je récupère le contenu du fichier créé en 1- pour le placer dans mon modèle de courriel
3- je défini l'expéditeur, le destinataire, l'objet, les PJ, ...
4- Sous outlook l'utilisateur n'a plus qu'à cliquer sur envoyer
 
Quelqu'un sait-il comment récupérer le contenu d'un fichier Word ???
J'ai fait quelques recherches et quelques essais mais je n'ai rien de concluant.
 

Reply

Marsh Posté le 11-05-2005 à 19:10:51    

Pareil, t'instancie un word via COM, t'ouvres le fichier, et tu récupère tout dedans...

Reply

Marsh Posté le 12-05-2005 à 09:53:05    

FlorentG a écrit :

Pareil, t'instancie un word via COM, t'ouvres le fichier, et tu récupère tout dedans...


 
Oui, je sais bien globalement comment procéder mais je ne sais pas exactement comment faire...
J'ai mon instance de Word, mon document ouvert et j'ai essayé un itérateur sur Document.Words, Document.Paragraphs mais j'ai le message d'erreur suivant :  
Erreur d'ouverture du document Word : Le membre de la collection requis n'existe pas.
 
Donc je suis un peu perdu ...

Reply

Marsh Posté le 13-05-2005 à 09:32:59    

FlorentG a écrit :

Non, aucun moyen. Il faut obligatoirement envoyer le mail côté serveur...


 
Faux!!!! j'ai lu qu'avec les espaces de noms:
System.Net.Mail
System.Net.Mime
, du framework V2.0
Il devient alors possible d'envoyer des mail directement depuis l'application.
 
Source: le mag Programmez de ce mois.
 :jap:  
 

Reply

Marsh Posté le 13-05-2005 à 09:34:43    

T'as rien compris, toi :o

Reply

Marsh Posté le 13-05-2005 à 09:37:02    

Je sais que c'est pas en rapport avec ce que veux faire Gaxx, mais c'est pour dire que c'est possible d'envoyer des mails quand même.

Reply

Marsh Posté le 13-05-2005 à 09:39:09    

Nan mais que je disais que c'était faux, je pensais qu'il voulait faire ça à partir d'une page web ;) Donc c'est pas faux ce que j'ai dis, fallait le replacer dans le contexte :)

Reply

Marsh Posté le 13-05-2005 à 09:42:52    

Ok c'est pour ca que tu parlais de serveur, moi j'avais pas compris comme ca, c'est pour ca que le serveur ca ma étonné.
Milles excuses alors...

Reply

Marsh Posté le 13-05-2005 à 22:09:03    

Gaxx, regarde du côté de  System.Diagnostics.Process.Start(string xyz) ou xyz serait un truc du genre mailto:blablablablabla ( par contre je ne suis pas sur qu'au niveau piece jointe ca marchera ), ca lancera le client mail par défault.
 
 
Sinon tu as le System.Web.Mail ( pour la framework 1.1 sinon avec le 2.0, le namespace est System.Net.Mail si je ne me trompe pas ) par exemple ( vite fait, mal fait  :o  ):  
 

Code :
  1. MailMessage mail = new MailMessage();
  2.             mail.To = "gfgdf@fdsfdsfsd.fr";
  3.             mail.Subject = "test lalaop";
  4.             mail.From = "liliila@lala.fr";
  5.             mail.Attachments.Add(new MailAttachment(@"c:\\test.txt" ));
  6.             SmtpMail.SmtpServer = "smtp.wanadoo.fr";
  7.             SmtpMail.Send(mail);


 
Si j'ai dis une connerie merci de rectifier :P

Reply

Marsh Posté le 16-05-2005 à 11:24:15    

BoumboMagic => Je vais y jeter un oeil, merci.
 
Pour le problème du document Word, j'ai décidé de ne plus passer par un fichier. Le texte sera saisi dans l'interface de mon application. Tant pis pour la mise en forme.
 
Et donc l'utilisation de Outlook semble plus judicieuse pour l'insertion du logo de ma boite et quelques fioritures qui se trouveront dans mon modèle.
 
 
 
Merci pour toutes vos réponses.  :jap:

Reply

Marsh Posté le 09-02-2006 à 10:27:19    

Bon je déterre un peu ce truc mais c'est parce que Google m'a envoyé ici...
Pour envoyer un mail tout con (sans pièce jointe et en texte) à partir d'une appli c# en utilisant le client mail par défaut, il suffit de faire un truc comme ça :

Code :
  1. //Envoie un mail avec le client par défaut
  2. public static void sendMail_default_client(MailMessage mymail)
  3. {
  4. string command = String.Empty;
  5. //Construction de la ligne de commande
  6. if (mymail.To.Length > 0)
  7.  command = command + "mailto:" + mymail.To;
  8. else
  9.  throw new Exception("Pas de destinataire!" );
  10. command = command + "?Subject=" + mymail.Subject;
  11. command = command + "&Body=" + mymail.Body;
  12. //(On peut rajouter CC, etc)
  13. //Execution de la ligne de commande
  14.         System.Diagnostics.Process.Start(command);
  15. }


Le tout étant de créer la commande "mailto:toto@wanadoo.fr?Subject=coucou&Body=Comment tu vas"


Message édité par LowLow le 09-02-2006 à 10:29:48
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed