c# - Error while sending email from Console application -
i trying send mail console application it's throwing error:
failure sending mail
i can not understand what's causing error. tried same code on machine , it's working fine. here stacktrace:
system.net.mail.smtpexception: failure sending mail. ---> system.net.webexceptio n: unable connect remote server ---> system.net.sockets.socketexceptio n: requested address not valid in context 66.96.147.108:25 @ system.net.sockets.socket.doconnect(endpoint endpointsnapshot, socketaddre ss socketaddress) @ system.net.servicepoint.connectsocketinternal(boolean connectfailure, sock et s4, socket s6, socket& socket, ipaddress& address, connectsocketstate state, iasyncresult asyncresult, int32 timeout, exception& exception) --- end of inner exception stack trace --- @ system.net.servicepoint.getconnection(pooledstream pooledstream, object ow ner, boolean async, ipaddress& address, socket& abortsocket, socket& abortsocket 6, int32 timeout) @ system.net.pooledstream.activate(object owningobject, boolean async, int32 timeout, generalasyncdelegate asynccallback) @ system.net.pooledstream.activate(object owningobject, generalasyncdelegate asynccallback) @ system.net.connectionpool.getconnection(object owningobject, generalasyncd elegate asynccallback, int32 creationtimeout) @ system.net.mail.smtpconnection.getconnection(servicepoint servicepoint) @ system.net.mail.smtptransport.getconnection(servicepoint servicepoint) @ system.net.mail.smtpclient.getconnection() @ system.net.mail.smtpclient.send(mailmessage message) --- end of inner exception stack trace --- @ system.net.mail.smtpclient.send(mailmessage message) @ paymentreminder.program.sendmail(list`1 sourcelist) in c:\documents , se ttings\amols\my documents\visual studio 2010\projects\paymentreminder\paymentrem inder\program.cs:line 110 innerexception is: system.net.webexception: unable connect remote serv er ---> system.net.sockets.socketexception: requested address not valid n context 66.96.147.108:25 @ system.net.sockets.socket.doconnect(endpoint endpointsnapshot, socketaddre ss socketaddress) @ system.net.servicepoint.connectsocketinternal(boolean connectfailure, sock et s4, socket s6, socket& socket, ipaddress& address, connectsocketstate state, iasyncresult asyncresult, int32 timeout, exception& exception) --- end of inner exception stack trace --- @ system.net.servicepoint.getconnection(pooledstream pooledstream, object ow ner, boolean async, ipaddress& address, socket& abortsocket, socket& abortsocket 6, int32 timeout) @ system.net.pooledstream.activate(object owningobject, boolean async, int32 timeout, generalasyncdelegate asynccallback) @ system.net.pooledstream.activate(object owningobject, generalasyncdelegate asynccallback) @ system.net.connectionpool.getconnection(object owningobject, generalasyncd elegate asynccallback, int32 creationtimeout) @ system.net.mail.smtpconnection.getconnection(servicepoint servicepoint) @ system.net.mail.smtptransport.getconnection(servicepoint servicepoint) @ system.net.mail.smtpclient.getconnection() @ system.net.mail.smtpclient.send(mailmessage message) here code:
list<paymentreminderlist> prlist = sourcelist; mailaddress frommail = new mailaddress(configurationmanager.appsettings.get("fromemail")); string networkuser = configurationmanager.appsettings.get("network_username"); string password = configurationmanager.appsettings.get("password"); string host = configurationmanager.appsettings.get("host"); int port = int.parse(configurationmanager.appsettings.get("port")); string frommail = configurationmanager.appsettings.get("fromemail"); string tomail = configurationmanager.appsettings.get("tomail"); string mailbody = "respected xxx, <br>this test mail.<br> [[list]] <br><br> sincerely, <br> abc<br>"; string mailcontent = ""; foreach (var item in prlist) { mailcontent += "" + item.abc + " | " + item.pqr + " | " + item.xyz+"<br>"; } mailbody.replace("[[list]]", mailcontent); //console.writeline("mail to"); mailaddress = new mailaddress(tomail); //console.writeline("mail from"); mailaddress = new mailaddress(frommail); mailmessage mail = new mailmessage(from, to); console.writeline("subject"); mail.subject = "this reminder mail"; console.writeline("your message"); //mail.body = console.readline(); mail.body = mailbody; mail.from = from; mail.to.add(to); mail.isbodyhtml = true; mail.priority = mailpriority.high; system.net.networkcredential networkcred = new system.net.networkcredential(); networkcred.username = networkuser; networkcred.password = password; smtpclient smtp = new smtpclient(host, port); smtp.credentials = networkcred; console.writeline("sending email..."); try { smtp.send(mail); } catch (exception ex) { console.writeline(ex); //should print stacktrace + details of inner exception if (ex.innerexception != null) console.writeline("innerexception is: {0}", ex.innerexception); }
does remote machine implement secure smtp? if so, you'll need set port property 465.
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.port.aspx
Comments
Post a Comment