2010-05-24 8 views
1

Lorsque j'ai essayé d'envoyer du courrier à partir du service Windows, j'ai reçu l'exception avec le message «Échec de l'envoi du courrier».Dépannage Erreur «Échec de l'envoi du courrier» lors de l'envoi de courrier via le service Windows (fonctionne dans l'application Windows Forms)

Le même code fonctionne dans l'application Windows Forms.

Le service Windows s'exécute dans le compte système local?

Veuillez m'aider à résoudre ce problème.

Voici le code qui envoie l'e-mail:

SmtpClient smtp = new SmtpClient("XXXX", 25); 
MailAddress from = new MailAddress("[email protected]","DRMUpdater"); 
MailAddress to = new MailAddress("[email protected]","DRM"); 
MailMessage email = new MailMessage(from, to); 
email.Subject = "DRMShell Updation Failed for user: " + userName; 
email.Body = String.Empty; 
smtp.Send(email); 
+0

s'il vous plaît code postal et/ou compléter le message d'erreur – mxmissile

+0

votre smtp nécessite l'authentification TLS? –

Répondre

0

Est-il possible que votre serveur SMTP a besoin d'authentification? Et cela pourrait bien se passer avec votre compte normal, mais l'authentification Local System échoue.

Vous pouvez essayer cela en définissant le service à exécuter sous votre compte ou en spécifiant des informations d'identification spécifiques au cours de la connexion. Vous pouvez modifier les informations d'identification en définissant la propriété UseDefaultCredentials sur false et en créant une nouvelle NetworkCredential dans la propriété Credentials.

+0

Salut mxmissile, S'il vous plaît trouver le code que j'utilise pour envoyer le courrier: SmtpClient smtp = new SmtpClient ("XXXX", 25); MailAddress from = new MailAddress ("[email protected]", "DRMUpdater"); MailAddress to = new MailAddress ("[email protected]", "DRM"); MailMessage email = nouveau MailMessage (de, à); email.Subject = "La mise à jour de DRMShell a échoué pour l'utilisateur:" + userName; email.Body = String.Empty; smtp.Send (email); . – user348725

+0

Bonjour, Comme le service Windows exécute des activités liées à l'administrateur. Je peux changer le compte de service. Mais je vais changer le compte pour les tests. Mais est-il possible de changer le compte à l'exécution ..? – user348725

+0

Vous ne savez pas exactement ce que vous voulez dire, mais si vous utilisez la propriété SmtpClient.Credentials comme je l'ai mentionné plus haut, vous devriez être en mesure de fournir toutes les informations d'identification que vous voulez à l'exécution. Et sinon, vous pouvez créer un nouveau compte, lui donner des droits d'administrateur sur cette boîte et assurez-vous qu'il est autorisé à envoyer des courriels. –