سؤال

I am building a windows forms application for a school that has a very tight network (meaning the person I am building it for has to ask their IT services to do everything).

This application sends emails out and I am using System.Net.Mail library to do so.

        SMTPServer = new SmtpClient("SMTPAddress");

        MailMessage mailObj = new MailMessage("admin@xyz.com", emailAddressTo);

        mailObj.IsBodyHtml = true;
        mailObj.Subject = "Subject";
        mailObj.Body = "<h2>Test E-Mail Message from the TSENS</h2>";

        SMTPServer.Credentials = new System.Net.NetworkCredential(SMTPUserName, SMTPPassword);
        SMTPServer.DeliveryMethod = SmtpDeliveryMethod.Network;  //This is new code

        SMTPServer.Send(mailObj);

I'm wondering if this line: SMTPServer.DeliveryMethod = SmtpDeliveryMethod.Network; will solve the latest error message he got when trying to send out an e-mail:

Error 5.7.1

Is there something else that I am missing?

Just in case you are wondering the SMTPUserName and Password is his e-mail username and password that he uses to send and receive mail.

هل كانت مفيدة؟

المحلول

I presume that the SMTPUsername his mailadress isn't "admin@xyz.com" which is used as the sender of the mailmessage.

The mailserver seems to validate if the person doing the send is allowed to send mails on behalf of admin@xyz.com which appearantly isn't the case.

According to the SMTP specs error 5.7.1 stands for "Unable to relay" which is what you try to do.

نصائح أخرى

        emailClient = new SmtpClient(yourEMAILSERVER);
        emailClient.Send(yourMailMessageObject); // in your case "mailObj" that you have defined already

I would avoid using SMTPServer class or set its Credentials or DeliveryMethod properties.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top