System.Net.Mail.SmtpException: почтовый ящик недоступен - PullRequest
1 голос
/ 02 августа 2011
// CREATE NEW EMAIL OBJECT
ContactUs.Core.Email oEmail = new ContactUs.Core.Email();

// EMAIL SMTP SERVER INFORMATION
oEmail.SmtpServer = "Server";
oEmail.SetAuthentication("Email", "Password");

// EMAIL INFORMATION
oEmail.From = "contact@Server.com";
oEmail.To = "RecipientEmail";
oEmail.Subject = this.txtMessage.Text;
oEmail.Message = strMessage;

// SEND EMAIL
oEmail.HtmlFormat = true;
oEmail.Send();

Это ошибка, которую я получаю. Я знаю, что аутентификация правильная.

System.Net.Mail.SmtpException: Mailbox unavailable. The server response was: 5.7.1 Client does not have permissions to send as this sender
at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at ContactUs.Core.Email.Send()
at _Default.btnSend_Click(Object sender, EventArgs e)

Ответы [ 3 ]

2 голосов
/ 02 августа 2011

5.7.1 == ретрансляция запрещена

Вы должны разрешить ретрансляцию для аутентифицированных пользователей или с диапазона IP-адресов с вашего SMTP-сервера: http://support.microsoft.com/kb/304897

Какой тип сервераВы используете для передачи сообщений?

1 голос
/ 12 ноября 2013

вы должны установить имя пользователя в SMTP-аутентификации как contact@Server.com.

        // CREATE NEW EMAIL OBJECT
        ContactUs.Core.Email oEmail = new ContactUs.Core.Email();

        // EMAIL SMTP SERVER INFORMATION
        oEmail.SmtpServer = "Server";
        oEmail.SetAuthentication("contact@Server.com", "Password");

        // EMAIL INFORMATION
        oEmail.From = "contact@Server.com";
        oEmail.To = "RecipientEmail";
        oEmail.Subject = this.txtMessage.Text;
        oEmail.Message = strMessage;

        // SEND EMAIL
        oEmail.HtmlFormat = true;
        oEmail.Send();

Ваш SMTP-сервер не позволяет устанавливать учетное имя пользователя, отличное от oEmail.From (адрес электронной почты отправителя).

0 голосов
/ 02 августа 2011

Добавьте сетевые учетные данные к вашему коду.

Пример почтового кода:

private void SendMailViaGmailUsingCredentials()
        {
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("your_email_address@gmail.com");
                mail.To.Add("to_address@mfc.ae");
                mail.Subject = "Test Mail";
                mail.Body = "This is for testing SMTP mail from GMAIL";

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
                MessageBox.Show("mail Send");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
}
...