Member 10901644 Ответов: 7

Как решить эту проблему... сбой отправки почты c#


Когда я пытаюсь отправить электронную почту с моего локального хостинга, это работает нормально, но когда я пытаюсь отправить электронную почту с учетной записи хостинга godaddy plesk, она показывает мне ошибку "failure sending mail"

"System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 74.125.25.108:25 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) --- End of inner exception stack trace --- at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6) at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback) at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at System.Net.Mail.SmtpClient.Send(MailMessage message) at WebApplication1._Default.Place_Click(Object sender, EventArgs e)"

try
            {
                //Create the msg object to be sent
                MailMessage msg = new MailMessage();
                //Add your email address to the recipients
                msg.To.Add(someone@gmail.com);
                //Configure the address we are sending the mail from
                MailAddress address = new MailAddress("username@gmail.com");
                msg.From = address;
                msg.Subject = "gmail";
                msg.Body = "gmail";

                //Configure an SmtpClient to send the mail.            
                SmtpClient client = new SmtpClient();
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.EnableSsl = true;
                client.Host = "smtp.gmail.com";
                client.Port = 25;

                //Setup credentials to login to our sender email address ("UserName", "Password")
                NetworkCredential credentials = new NetworkCredential("username@gmail.com", "password");
                client.UseDefaultCredentials = true;
                client.Credentials = credentials;

                //Send the msg
                client.Send(msg);

                //Display some feedback to the user to let them know it was sent
                Label1.Text = "Your message was sent!";
            }
            catch (Exception ex)
            {
                //If the message failed at some point, let the user know
                Label1.Text = ex.ToString();
                //"Your message failed to send, please try again."
            }

Afzaal Ahmad Zeeshan

Что это за сообщение, которое отображается вместе с "отказом отправки почты"?

Также обратите внимание, что вы никогда не должны делиться своим именем пользователя и паролем (даже с одним или двумя удаленными символами) в интернете. Это для вашей же личной жизни!

Member 10901644

Я обновил свой вопрос...теперь вы можете помочь мне решить эту проблему. этот код также работает с моим классическим веб-хостингом godaddy, но с хостингом plesk он показывает ошибку.

Afzaal Ahmad Zeeshan

Я добавил ответ на вашу проблему. Пожалуйста, посмотрите мое решение.

7 Ответов

Рейтинг:
59

Member 10901644

Теперь я нашел решение. Приведенный ниже код работает для меня, просто меняя smtp-сервер, спасибо всем.

try
           {
               //Create the msg object to be sent
               MailMessage msg = new MailMessage();
               //Add your email address to the recipients
               msg.To.Add(someone@any.com);
               //Configure the address we are sending the mail from
               MailAddress address = new MailAddress("user@mydomain.com");
               msg.From = address;
               msg.Subject = "anything";
               msg.Body = "anything";

               //Configure an SmtpClient to send the mail.
               SmtpClient client = new SmtpClient();
               client.DeliveryMethod = SmtpDeliveryMethod.Network;
               client.EnableSsl = false;
               client.Host = "relay-hosting.secureserver.net";
               client.Port = 25;

               //Setup credentials to login to our sender email address ("UserName", "Password")
               NetworkCredential credentials = new NetworkCredential("user@mydomain.com", "Password");
               client.UseDefaultCredentials = true;
               client.Credentials = credentials;

               //Send the msg
               client.Send(msg);

               //Display some feedback to the user to let them know it was sent
               Label1.Text = "Your message was sent!";
           }
           catch (Exception ex)
           {
               //If the message failed at some point, let the user know
               Label1.Text = ex.ToString();
               //"Your message failed to send, please try again."
           }


cmodev

его работа отлично подходит для меня, после долгого поиска ответов, ключ: клиент.Хозяин = "relay-hosting.secureserver.net";

Рейтинг:
46

F-ES Sitecore

Решение этой проблемы заключается в том, чтобы не отправлять электронную почту с smtp-серверов gmail, а отправлять ее через smtp-сервер GoDaddy.

http://vandelayweb.com/sending-asp-net-emails-godaddy-gmail-godaddy-hosted/[^]

Более полное объяснение того, почему это происходит, подробно описано здесь;

http://forums.asp.net/post/5825785.aspx[^]


Member 10901644

Я пробовал это, но это также не работает для меня. Пожалуйста смотрите я обновил свой Q и полный errorr

Рейтинг:
2

Member 10901644

Я получаю эту ошибку

"A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 74.125.28.108:587"


Рейтинг:
1

SINGHXLb

Привет
Перед кодированием

Проверьте , можете ли вы отправлять электронную почту с помощью SMTP-сервера , проверьте порты, в данном случае порт 587.
Обычно это 25(SMTP) , 465(SMTP с SSL).

Вы можете телнет

телнет &ЛТ;служить&ГТ; &ЛТ;порту&ГТ;

Вы также можете попробовать отправить электронную почту с помощью telnet.
http://www.port25.com/how-to-check-an-smtp-connection-with-a-manual-telnet-session-2


Member 10901644

порт 587 отлично работает с моим локальным сервером и классическим хостингом GoDaddy. Я также разговаривал с поддержкой GoDaddy, но они сказали, что это ошибка моего скрипта, и их настройки сервера в порядке.

Рейтинг:
0

Modi Mayank

Сначала вам нужно проверить настройки SMTP GoDaddy. В большинстве случаев вы получите ошибку из-за установки неправильных настроек.

Также попробуйте отладить код с помощью блока try..catch и отследить внутреннее исключение.


Member 10901644

Как проверить настройку SMTP GoDaddy в хостинге plesk.

Рейтинг:
0

Afzaal Ahmad Zeeshan

Это происходит из-за порта, который вы используете, и сервер не отвечает на ваш запрос в этом порту. Измените порт на 25 и повторите попытку. Я всегда использовал 25, и это всегда срабатывало.


Member 10901644

Я попробовал порт 25, 465 и 587, все не работало, и ошибка была такой же, как и выше. Пожалуйста, смотрите, что я обновил свой Q и полную ошибку

Рейтинг:
0

Sanoj T

Привет,

Я также получал ошибку

"Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или установленное соединение не удалось, потому что подключенный хост не ответил 74.125.28.108:587"


Спасибо еще раз.


Member 10901644

Код пожалуйста