Bonjour,
Je veux envoyer un mail sous dotnet mais je ne sais pas comment récupérer le chemin de la pièce jointe de façon dynamique, j'utilise un Fileupload mais je ne sais pas si je dois utiliser un autre contrôle.
Merci pour votre aide.
Version imprimable
Bonjour,
Je veux envoyer un mail sous dotnet mais je ne sais pas comment récupérer le chemin de la pièce jointe de façon dynamique, j'utilise un Fileupload mais je ne sais pas si je dois utiliser un autre contrôle.
Merci pour votre aide.
bah oui, tu peux faire ca, mais il faudra le stocker quelque part sur le serveur avant de le joindre. tu ne peux pas lire un fichier client, sinon n'importe quel site web pourrait fouiller ton disque
Qu'est ce que je dois mettre dans le corps du mail pour joindre un fichier dynamiquement?
Merci de votre réponse.
fais une recherche dans les cours dotnet, il y a deux articles sur l'envoi de mail ;)
la MSDN de la classe MailMessage te sera aussi bien utile
Voilà ce que j ai trouvé:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 protected void Button1_Click(object sender, EventArgs e) { MailMessage email = new MailMessage(); email.From = txt_mailcandidat.Text; email.To = DataList2.ToString(); email.Subject = txt_titrecv.Text; email.Body = DataList1.ToString(); /* celui est Statique mais moi je veux dynamique : string chemin; chemin = "chemin dynamique"; email.Attachments.Add(new MailAttachment(chemin)); */ email.Priority = MailPriority.High; SmtpMail.SmtpServer = "smtp.mondomaine.com"; try { SmtpMail.Send(email); } catch (Exception ex) { Label2.Text = ex.Message; }
ca ne veut rien dire dynamique, un chemin est "statique", dans le sens où dès qu'il a cliqué sur le bouton, tu upload ton fichier là où tu veux et donc tu connais le chemin stocké et donc tu peux le mettre à droite du égal.
je vois pas ce qui te gene. t'as tout à ta disposition, t'as juste à uploader le fichier sur le serveur et faire addAttachment avec le chemin du fichier uploadé SUR LE SERVEUR!
En fait j ai testé ce code:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 protected void Button1_Click(object sender, EventArgs e) { MailMessage email = new MailMessage(); email.From = txt_mailcandidat.Text; email.To = DataList2.ToString(); email.Subject = txt_titrecv.Text; email.Body = DataList1.ToString(); string chemin; chemin = "C:\\serveurCV"; email.Attachments.Add(new MailAttachment(chemin)); email.Priority = MailPriority.High; SmtpMail.SmtpServer = "smtp.mondomaine.com"; try { SmtpMail.Send(email); } catch (Exception ex) { Label2.Text = ex.Message; } }
J ai eu comme erreur:
Comment je vais mentionner le chemin du dossier dans le serveur? car maintenant je teste en local;Code:
1
2
3
4
5
6
7
8 Message d'erreur du compilateur: CS1009: Séquence d'échappement non reconnue Erreur source: Ligne 31 : Ligne 32 : string chemin; Ligne 33 : chemin = "C:\\serveurCV"; Ligne 34 : email.Attachments.Add(new MailAttachment(chemin)); Ligne 35 :
Merci
ca serait super si tu faisais un peu de recherche quand tu as un message d'erreur, car la réponse s'y trouve toujours ;)
dans ton cas, il suffit de rajouter un @ devant ton chemin. tout simple
En fait j ai mis @ devant le chemin mais j'ai eu une autre erreur, quand je clique sur envoyer après avoir rempli les champs du formulaire il me dit qu'il ne trouve pas le chemin "D:\\serveurCV" pour envoyer le CV joint au mail, le dossier serveurCV et en local dans mon ordinateur, j ai pas encore utilisé le serveur car le site sera mis en ligne chez un hébergeur.
Merci pour votre réponse
PS:
pour joindre le CV j ai mis un contrôle Fileupload et j ai rien mis comme code.
on reprend à zéro :)
1- il faut un composant fileUpload
2- il faut que tu places PLEIN de lignes de code pour prendre le fichier et le stocker sur le serveur. si tu mets pas de code, ca upload pas le fichier hein ;)
3- tu attaches ton fichier
là, tu attaches un dossier "d:\\dossierCV", c'est normal que ca plante..
Alors j ai ajouté un bouton devant le fileupload qui va ajouter le fichier dans le "dossierCV" mais je ne vois pas comment à l'envoi du mail on va récupérer le fichier que je viens de joindre puisque le dossier va contenir plusieurs CV.
MerciCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 protected void Button2_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) try { FileUpload1.SaveAs("D:\\dossierCV\\" + FileUpload1.FileName); } catch (Exception ex) { Label2.Text = "ERROR: " + ex.Message.ToString(); } else { Label2.Text = "Aucun fichier n'est spécifié."; } } protected void Button1_Click(object sender, EventArgs e) { MailMessage email = new MailMessage(); email.From = txt_mailcandidat.Text; email.To = DataList2.ToString(); email.Subject = txt_titrecv.Text; email.Body = DataList1.ToString(); string chemin; chemin = "D:\\dossierCV"; email.Attachments.Add(new MailAttachment(chemin)); email.Priority = MailPriority.High; SmtpMail.SmtpServer = "smtp.mondomaine.com"; try { SmtpMail.Send(email); } catch (Exception ex) { Label2.Text = ex.Message; } }
déjà, pourquoi tu as un bouton d'upload et un bouton d'envoi?
ensuite, ton nom de fichier, tu peux le stocker en base, en session, en cache, en cookie, dans le registre, et milles autres endroits donc tu SAIS comment le récupérer.
Alors j ai rassemblé le code des 2 boutons en un mais pour la pièce jointe, je voulais savoir comment le CV sera envoyé, que dois-je ajouter dans le code pour qu'il soit joint au mail,
désolé de t avoir embêté avec mon souci, je suis débutante :)
lis les cours dotnet de développez comme je t'ai dit plus haut. j'ai écrit un article complet sur l'envoi de mail dont une partie est dédiée aux pièces jointes. lis-le, t'y découvriras des trucs utiles je pense ;)
J ai bien lu cette article http://webman.developpez.com/article.../email/csharp/ , mais pour la pièce jointe elle a été précisé directement toto.txt , mais pour mon cas c'est chaque candidat qui veut postuler il charge son CV 8O
..., t'es désespérant :mouarf:
là où il met toto.txt, tu mets juste "D:\\dossierCV\\" + FileUpload1.FileName" , c'est tout. y a rien d'autre à faire.