2010-05-24 3 views
1

Когда я попытался отправить почту из службы Windows, я получил исключение с сообщением «Отказ отправки почты».Устранение ошибки «Отказ при отправке почты» при отправке электронной почты через службу Windows (работает в приложении Windows Forms)

Тот же код работает в приложении форм для окон.

Служба Windows работает в локальной учетной записи системы?

Просьба помочь мне в решении этой проблемы.

Вот код, который отправляет электронную почту:

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

пожалуйста, отправьте код и/или сообщение об ошибке – mxmissile

+0

ли ваш smtp требует TLS-аутентификации? –

ответ

0

Возможно ли, что ваш сервер SMTP требует аутентификации? И это может быть нормально с вашей обычной учетной записью, но ошибка Local System.

Вы можете попробовать это, установив службу для запуска под своей учетной записью или указав определенные учетные данные во время соединения. Вы можете изменить учетные данные, установив UseDefaultCredentials на false и создав новый NetworkCredential в собственности Credentials.

+0

Привет mxmissile, пожалуйста, найдите код, который я использую для отправки почты: SmtpClient smtp = новый SmtpClient («XXXX», 25); MailAddress from = new MailAddress ("[email protected]", "DRMUpdater"); MailAddress to = new MailAddress («[email protected]», «DRM»); MailMessage email = новый MailMessage (от, до); email.Subject = "Ошибка восстановления DRMShell для пользователя:" + имя_пользователя; email.Body = String.Empty; smtp.Send (электронная почта); . – user348725

+0

Hi ho, Поскольку служба Windows выполняет связанные с администратором действия. Я могу изменить учетную запись службы. Но я изменю счет для тестирования. Но возможно ли изменить учетную запись во время выполнения? – user348725

+0

Не совсем уверен, что вы имеете в виду, но если вы используете свойство «SmtpClient.Credentials», как я упоминал выше, вы должны быть в состоянии предоставить все учетные данные, которые вы хотите во время выполнения. Иначе вы могли бы создать новую учетную запись, предоставить ей права администратора на этом поле и убедиться, что она имеет право отправлять электронные письма. –

 Смежные вопросы

  • Нет связанных вопросов^_^