Webmail erreur acces CDO.message 0x80040217 [Résolu]

cs_Armis 4 Messages postés lundi 19 juillet 2004Date d'inscription 22 juillet 2004 Dernière intervention - 21 juil. 2004 à 19:15 - Dernière réponse : Hep8 8 Messages postés dimanche 11 avril 2004Date d'inscription 6 avril 2005 Dernière intervention
- 18 mars 2005 à 12:57
Salut,
J'ai un problème avec ma connexion à mon serveur SMTP je crois...

Voici mon code pour envoyer un mail à partir d'une WinApp en C#:

MailMessage conf_mail = new MailMessage();
conf_mail.From = "adresse@.domaine.com";
conf_mail.To = "adresse@.domaine.com";
conf_mail.Subject = "Confirmation";
conf_mail.Body = txt_confirmation.Text;
conf_mail.BodyFormat = MailFormat.Text;
conf_mail.Priority = MailPriority.Normal;

// SMTP
SmtpMail.SmtpServer = "adresse IP Serveur";
SmtpMail.Send(conf_mail);

Biensur je capture les erreur là-dedans et voila ce que j'optien:

Could not access 'CDO.Message' object
System.Reflection.TargetInvocationException:
Exception has been thrown by the target of an invocation. --->
System.Runtime.InteropServices.COMException (0x80040211):
Le message n'a pas pu être envoyé vers le serveur SMTP. Le code d'erreur de transport était 0x80040217. La réponse du serveur était not available

Haha... moitié français moitié anglais... :)

J'ai essayé de mettre l'adres ip du serveur SMTP et son nom DNS mais j'avais la même erreur. J'ai aussi enlevé le firewall que j'avais localement. Je veux utiliser le serveur smtp de la compagnie alors je ne veux pas utiliser le "localhost" comme serveur SMTP. Quand j'utilise le localhost ca fonctionne bien pour tout les courriel du même domaine. Je dois pouvoir envoyer des courriels à plein de personnes à l'extérieur donc je ne peux pas utiliser le serveur SMTP local et faire plein de relais. Mon application sera sur plusieurs machienes (6).

T k chez pus koi faire...

Ha oui, je dois fournir un user name et un mot de passe normalement pour pouvoir entrer dans Outlook, qui utilise le serveur SMTP que je veux utiliser. Est-ce que je dois les inscrire en quelque part dans mon code?

j'ai vu ce genre de chose:
eMail.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
eMail.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "prenom.nom"
eMail.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

mais j'ai aussi vu que c'était inutile...
J'ai essayé et ca fonctionne pas. J'ai cette erreur:
Web.Mail.MailMessage.Fields' denotes a 'property' where a 'method' was expected
et il me souligne les champs Fields...

Merci bien ;)

Armis the Out Law
Afficher la suite 

4 réponses

Répondre au sujet
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 21 juil. 2004 à 20:12
+3
Utile
sinon y'a la 2eme methode qui ressemble tres fortement à ce que tu as mit, sauf que tu as mit des () à la place des [] :
http://www.codeproject.com/dotnet/SystemWeb_Mail_SMTP_AUTH.asp

Cocoricoooooooo !!!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_Armis 4 Messages postés lundi 19 juillet 2004Date d'inscription 22 juillet 2004 Dernière intervention - 22 juil. 2004 à 17:14
+3
Utile
Parfait!

Voila la vrai façon de le faire pour que cela fonctionne:

try
{
MailMessage conf_mail = new MailMessage();
conf_mail.From = "______@__.__";
conf_mail.To = "______@__.__";
conf_mail.Subject = "Sujet";
conf_mail.Body = "Body";
conf_mail.BodyFormat = MailFormat.Text;
conf_mail.Priority = MailPriority.Normal;

conf_mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;

conf_mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = "username";

// martin@hotmail.com --> username = martin //

conf_mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"]="motdepasse";

SmtpMail.SmtpServer = "IP du serveur SMTP";

SmtpMail.Send(conf_mail);

MessageBox.Show("L'envoi du mail a réussi.", "Envoi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
catch
{
MessageBox.Show( "L'envoi du mail a échoué.\nVeuillez vous assurer de la validité de l'adresse du client.\n Il peut aussi être question d'erreurs dans la configuration mail.", "Envoi", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Merci mon poulet tu m'as mis sur la bonne voix... C'était une petite erreur d'innatention! ;o)

Armis the Out Law
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Armis
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 21 juil. 2004 à 20:06
0
Utile
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");	//basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret");	//set your password here


(source : http://www.systemwebmail.net/faq/3.8.aspx)

Cocoricoooooooo !!!!
Commenter la réponse de cs_coq
Hep8 8 Messages postés dimanche 11 avril 2004Date d'inscription 6 avril 2005 Dernière intervention - 18 mars 2005 à 12:57
0
Utile
Bonjour,

Je dois envoyer des mail par un serveur mail interdisant l'open relay (contre les spam) et donc utiliser ces methode "mail.Fields.Add(...)". Mais avant de les utiliser definitivement dans mon applic, j'aurais voulu savoir a quoi correspondait le premier argument de ces fonctions: "http://schemas.microsoft.com/cdo/configuration/sendusername
"
De toute facon je dois faire un rapport et expliquer mes choix de programmation, et je voudrai savoir ce que représente cette adr internet au milieu de mon code, comment elle est traduite et ..., en comprendre le fonctionnement quoi !

il y a bien
Check MSDN for the CDOSYS http://schemas.microsoft.com/cdo/configuration/ Namespace at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration.asp

sur le 2eme site donné par coq mais (en anglais c'est difficile) je ne croi pas que ca soit les explication que je cherche.

Merci d'avance!

Hep, toi la bas!
Commenter la réponse de Hep8

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.