-->

'System.Net.Mail.SmtpException: Failure sendin

2019-06-13 20:19发布

问题:

i tried to send mail from a VPS windows 2012 & IIS 8 server using a remote mail server , i couldn't sent mails,and got the error

send Faild - 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 <Ip Address> 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.SmtpClient.Send(MailMessage message) --- End of 
inner exception stack trace --- at System.Net.Mail.SmtpClient.Send(MailMessage message) at WebApplication1.Default.Page_Load(Object sender, EventArgs e) 

code used

<%

Dim Email As New System.Net.Mail.MailMessage( _"emails@domain.org", "email@domain.org")
Email.Subject = "test subject"
Email.Body = "this is a test"
Dim mailClient As New System.Net.Mail.SmtpClient()
'This object stores the authentication values
 Dim basicAuthenticationInfo As _
New System.Net.NetworkCredential("username", "password")
mailClient.Host = "host"
mailClient.UseDefaultCredentials = False
mailClient.Credentials = basicAuthenticationInfo
mailClient.Send(Email)

%>

update

not able to telnet smtp server from the vps, but from local systems its possible.

回答1:

  • You may need to add your outgoing IP address of your IIS server to your firewall. Go to http://whatismyipaddress.com/ if you're able to, this will tell you your outbound address.
  • You may need to look at your antivirus configuration - if you're using McAffee this may help: http://digital.ni.com/public.nsf/allkb/76D1CFA7F3C047D08625719B006861B5
  • instead of specifying "host" in your code as the SMTP server hostname, you could try specifying the IP address of your SMTP server
  • also once you can telnet to the SMTP server, make sure there's no anti-spam getting in the way that is stopping your application from finally connecting to the actual SMTP server