Я пытаюсь отправить уведомление по электронной почте в ASP.NET Web API. Ниже приведен кодОтправка электронной почты с помощью SMTP в web api vs asmx service
[HttpPost]
[Route("api/UpdateUser")]
public Foo UpdateUser(Foo vm)
{
/* some data base operations here....
......
......
*/
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("<SMTP Server>", 587);
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "You are subject";
mail.IsBodyHtml = true;
mail.Body = "Hello My Dear User";
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
Foo newVM = new Foo();
}
Но он бросает следующее сообщение об ошибке:
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 <server IP>:587
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.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)
Теперь я создал совершенно новый asp.net веб-проекта и поставил тот же самый код в службу ASMX (SOAP), и вызов это с помощью инструментов мыла клиента, он работает просто отлично ..
я развертывается как в два отдельных приложениях IIS на одном (тестовой среде) сервер, только разница web.api является частью ASP.NET MVC Application где as asxx сервисная часть o f asp.net web приложение.
Результат: Служба asmx работает, но ошибки API WEB API выше с сообщением об ошибке.
Вопрос: почему? что мне не хватает? Я искал вокруг и нашел следующую конфигурацию может помочь
<system.net>
<defaultProxy>
<proxy usesystemdefault="False"/>
</defaultProxy>
:(но, к сожалению, в моем случае это не помогло ...
Любой сталкивался с такой вопрос?
В чем разница? В любом случае я пробовал, но не успел я получаю ту же ошибку ... – venu
Шахта отлично работает. Если вы используете GMAIL, включите менее безопасное приложение. –
работает отлично, если он реализован в веб-службе asmx. Но если реализовать тот же API ASP.NET WEB, он не работает. – venu