Ikki2504
Messages postés13Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention26 décembre 2010
-
4 avril 2009 à 22:40
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
6 avril 2009 à 20:44
Bonjour à tous,
Ma question est probablement stupide, mais ça fait des heures que je bute là dessus, et la msdn ainsi que la bonne douzaine de forums visités ne m'ont pas apportés la réponse à mon problème.
Je développe un petit module d'une application qui a pour mission d'envoyer un mail. J'utilise pour ça System.Net.Mail;
Quand j'écris :
public void EnvoieMail(String expediteur, String destinataire, String sujet, String message, String serveurSMTP)
{
MailMessage m = new MailMessage(expediteur, destinataire, sujet, message);
SmtpClient client = new SmtpClient(serveurSMTP);
try { client.Send(m); }
}
ça tourne parfaitement, le mail arrive a bon port(mon SMTP ne requiert pas d'authentification, tout est niquel).
Mais dès que j'essaie de gérer les copies, c'est la chute...
Si j'écris
m.CC.Add(copie);
j'ai droit à "La chaîne spécifiée n'est pas de la forme requise pour une adresse de messagerie." lors de l'exécution.
Si j'écris
m.CC = copie;
j'ai droit à "System.Net.Mail.MailMessage.CC ne peut être assigné -- il est en lecture seule" à la compil.
Si j'écris
m.CC.Add(new MailMessage(copie));
j'ai droit à "System.Net.Mail.MailMessage ne contient pas de constructeur qui accepte d'argument '1'. Pourtant, quand je fais m.To.Add(new MailMessage(destinataire)); ça marche...
(dans mes tests, copie = mon adresse de messagerie hotmail, ou no-log, ou de mon université... et quand je mets une de ces adresses dans destinataires, ça marche)
Qui pourrait m'EXPLIQUER pourquoi y'a rien à faire pour mettre une adresse de messagerie en copie sur un mail s'il vous plaît?
Merci beaucoup
Si ce n'est pas le cas, vérifie bien que l'email soit une eMail valide:
Sur ce point, il faut faire attention... ça ne m'étonnerais pas que certain site propose de faire des mails qui ne respecte pas la norme tel que définie dans la RFC 5321... Si c'est le cas, et que le framework .NET détecte une telle adresse, ça va probablement coincer et tu risques d'avoir le message "email invalide".
Ikki2504
Messages postés13Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention26 décembre 2010 6 avril 2009 à 13:04
Bon finalement j'ai trouvé la solution, c'était moi l'abruti...
En fait je passais mes paramètres à ma fonction EnvoieMail dans un ordre, et je les récupérais dans un autre ordre... De plus, j'avais mal interprété le message d'erreur qui apparaissait. Merci messieurs les points d'arrêts !
Par ailleurs, je connaissais pas la RFC 5321, je vais y jeter un coup d'oeil.
Ikki2504
Messages postés13Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention26 décembre 2010 5 avril 2009 à 17:52
Oui je l'ai suivi et j'ai deux problèmes : Le premier, c'est la ligne
client.Credentials = CredentialCache.DefaultNetworkCredentials;
qui plante. Je la mets en commentaire pour être tranquille (fallait pas ??). A l'exécution, la ligne
MailAddress copy = new MailAddress(copie);
plante et m'indique un FormatException, soi-disant que l'adresse n'est pas une adresse de messagerie valide.
Je recommence en mettant :
MailAddress copy = new MailAddress("monadresse_mail@xxx.fr"); et là j'ai droit à "Le nom distant 'monadresse_mail@xxx.fr' n'a pas été résolu".
Oui Internet fonctionne, oui l'adresse mail est correctement écrite...
Ca commence à me dépasser
Vous n’avez pas trouvé la réponse que vous recherchez ?