Отправка электронной почты в ASP .Net - PullRequest
2 голосов
/ 23 ноября 2011

Как отправить электронное письмо на ASP .Net с использованием внешнего адреса ??

Я пробовал этот код, но не повезло:

Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()

mailMessage.From = New System.Net.Mail.MailAddress("fromAddress")
mailMessage.To.Add(New System.Net.Mail.MailAddress("toAddress"))

mailMessage.Priority = Net.Mail.MailPriority.High
mailMessage.Subject = "Subject"
mailMessage.Body = "test"

Dim smtpClient As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient("xxx.outlook.com", portNumber)

smtpClient.Send(mailMessage) //--> got error here

Но пока я выполняюкод, он получил это сообщение об ошибке:

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.1 Client was not authenticated

Я попытался добавить строку кода:

smtpClient.Credentials = New System.Net.NetworkCredential (имя пользователя,пароль)

Но все равно не могу отправить электронное письмо.

Кто-нибудь может помочь?

Ответы [ 6 ]

1 голос
/ 23 ноября 2011
  • Попробуйте smtpClient.UseDefaultCredentials = false;, прежде чем устанавливать новые учетные данные
  • Попробуйте установить smtpClient.EnableSsl в true / false в зависимости от вашей среды
1 голос
/ 23 ноября 2011

Я предполагаю, что вы используете Exchange 2007 или более позднюю версию в качестве бэкэнда?

В любом случае, ваш почтовый сервер не позволяет отправлять письма анонимно. Вам нужно будет либо указать имя пользователя / пароль в своем коде, либо разрешить ретрансляцию без аутентификации с вашего веб-сервера.

Поговорите со своими айтишниками, что они предпочитают.

0 голосов
/ 02 октября 2014

была такая же ошибка, перемещено client.UseDefaultCredentials = false; перед настройкой client.Credentials и все работает.

0 голосов
/ 07 декабря 2011
      public static bool SendMail(string mailAccount, string password, string to, string subject, string message)
      {
        try
        {
         NetworkCredential loginInfo = new NetworkCredential(mailAccount, password);
         MailMessage msg = new MailMessage();
         msg.From = new MailAddress(from);
         msg.To.Add(new MailAddress(to));
         msg.Subject = subject;
         msg.Body = message;
         msg.IsBodyHtml = false;
         SmtpClient client = new SmtpClient("smtp.gmail.com");
         client.EnableSsl = true;
         client.UseDefaultCredentials = false;
         client.Credentials = loginInfo;
         client.Send(msg);

         return true;
        }
       catch (Exception)
       {
         return false;
       }

   }

Я использую этот код для отправки почты из моей учетной записи Gmail.

0 голосов
/ 23 ноября 2011

Попробуйте эти настройки, проверьте для .EnableSSL свойства true/false и smtp post number, на котором ваш mail server прослушивает исходящую почту.

Если вы не включите настройки SSL в Outlook для конфигурации Outlook Gmail, то выдает ту же ошибку, но причина была найдена в настройках SSL.

ну попробуйте это, может это решит вашу проблему ..

msg.IsBodyHtml = true;
            msg.Body = mailContent;

            SmtpClient mailClient = new SmtpClient("smtp.mail.yahoo.com", 25);
            NetworkCredential NetCrd = new NetworkCredential(frmyahoo, frmpwd);
            mailClient.UseDefaultCredentials = false;
            mailClient.Credentials = NetCrd;
            mailClient.EnableSsl = false;
            mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            mailClient.Send(msg);

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

0 голосов
/ 23 ноября 2011

Я сделал это с помощью C #. Это может помочь вам. Пожалуйста, проверьте.

   MailMessage msg1 = new MailMessage();
                        msg1.From = strEFrom;
                        msg1.To = strETo;
                        msg1.Cc = strECC;
                        msg1.Subject = "Hi";
                        msg1.Priority = MailPriority.High;
                        msg1.BodyFormat = MailFormat.Html;
                        msg1.Body = strBody;
                        SmtpMail.SmtpServer = ConfigurationSettings.AppSettings["MailServer"].ToString();
                        SmtpMail.Send(msg1);

и в файле web.config

<appSettings>
          <add key="MailServer" value=""/>
</appSettings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...