Невозможно отправить электронное письмо через SMTP GoDaddy - PullRequest
0 голосов
/ 19 мая 2018

Я работаю над веб-сайтом ASP .Net MVC, и мне нужно отправлять электронную почту через Godaddy smtp, Ранее мой сайт разрабатывался в классическом ASP и размещался на веб-хостинге godaddy (тогда он работал нормально).но сейчас я размещаю этот сайт на IIS ,

Я использую следующий код для отправки электронной почты, но он не работает

MailMessage msg = new MailMessage();
msg.From = new MailAddress(model.From);
msg.To.Add(model.To);
msg.Body = model.Body;
msg.Subject = model.Subject;

SmtpClient smtp = new SmtpClient("relay-hosting.secureserver.net",25);
smtp.Credentials = new NetworkCredentials("support@{myCompanyName}.com",{password});
smtp.EnableSsl  = False;
smtp.Send(msg);

Я также использовал dedrelay.secureserver.net вместо relay-hosting.secureserver.net хост (как указано на https://pk.godaddy.com/help/what-is-my-servers-email-relay-server-16601), но оба не работают

Ответы [ 6 ]

0 голосов
/ 22 июля 2019
        string From = "[MyGodaddyEMailAddress]"; //eg.info@mango.com
        string FromPassword = "[MyGodaddyMailPassword]";
        try
        {
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress(From);
            msg.To.Add("[RecipientEmailAddress]");
            msg.Subject = "[MailSubject]";
            msg.Body = "[MailBody]";
            msg.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient("mail.[domain].com", 587); //eg. mail.mango.com
            smtp.Credentials = new System.Net.NetworkCredential(From, FromPassword);

            smtp.EnableSsl = false;

            // Sending the email
            smtp.Send(msg);
            // destroy the message after sent
            msg.Dispose();
            Console.WriteLine("Message Sent Successfully");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        Console.ReadKey();
0 голосов
/ 21 января 2019
  1. Вы можете попробовать этот код

      smtp.Host = "relay-hosting.secureserver.net";    smtp.EnableSsl = false;    smtp.UseDefaultCredentials = false;    smtp.Port = 25;
    
0 голосов
/ 27 мая 2018

Возможно, вам следует позвонить своему провайдеру, здесь, в Нидерландах, они в основном блокируют порт 25 из-за вредоносных программ и червей, которые раньше отправляли электронную почту.Это может быть так просто, как это.Вы пробовали telnet с вашего локального компьютера на почтовый сервер (telnet mailserver.io 25)?Если это заканчивается временем ожидания, у вас есть ответ, и порт либо отфильтровывается у вашего интернет-провайдера, либо с его конца.

0 голосов
/ 26 мая 2018

Большинство SMTP-серверов в настоящее время довольно ограничены в отношении исходящей электронной почты.Я рекомендую протестировать параметры с помощью почтового клиента (или telnet, если вам это нравится), прежде чем предположить, что с кодом что-то не так.Это также может дать вам сообщение об ошибке, которое помогает при отладке.

Некоторые вещи, которые приходят на ум:

  1. Сервер может проверять адрес FROM по своей базе данных, в частности, по учетной записи пользователя, которую вы используете для аутентификации.Несмотря на то, что вы можете поместить все, что хотите, в заголовок письма, это поле должно быть вашим реальным адресом аутентифицированной учетной записи и только это (без описательного имени).
  2. Сервер может потребовать использования шифрования TLS, независимо от порта.
  3. Порт 25 довольно распространен, но в соответствии с официальной отправкой почты RFC следует использовать порт 587. Возможно, попробуйте.
  4. Возможно, что GoDaddy разрешает соединения только отих собственные (хостинг) серверы к этим SMTP-реле.

Если соединение не завершится полностью (что указывает на № 4), сервер должен в какой-то момент отправить какое-то сообщение об ошибке.Как я уже писал выше, я бы порекомендовал протестировать / записать в журнал сообщения, которые должны дать некоторую информацию.

0 голосов
/ 24 мая 2018

GoDaddy не разрешает ретрансляцию через их сервер, если вы не участвуете в одном из планов хостинга, который включает SMTP.

0 голосов
/ 19 мая 2018

Вы можете установить свои учетные данные в webconfig как (для godaddy)

 <system.net>
  <mailSettings>
    <smtp from="your email address">
      <network host="relay-hosting.secureserver.net" port="25" />
    </smtp>
  </mailSettings>
</system.net>

, а в c # вы можете использовать как

MailMessage message = new MailMessage();
message.From = new MailAddress("your email address");

message.To.Add(new MailAddress("your recipient"));

message.Subject = "your subject";
message.Body = "content of your email";

SmtpClient client = new SmtpClient();
client.Send(message);

Это будет работать

...