java - Not able to send Email using javax in android app -
i using following code send e-mail:
properties props = new properties(); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.socketfactory.port", "465"); props.put("mail.smtp.socketfactory.class", "javax.net.ssl.sslsocketfactory"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465"); session session = session.getdefaultinstance(props, new javax.mail.authenticator() { protected passwordauthentication getpasswordauthentication() { return new passwordauthentication("sender@gmail.com","123456"); } }); try { message message = new mimemessage(session); message.setfrom(new internetaddress("sender@gmail.com")); message.setrecipients(message.recipienttype.to, internetaddress.parse("reciever@gmail.com")); message.setsubject("testing subject"); message.settext("dear mail crawler," + "\n\n no spam email, please!"); transport.send(message); system.out.println("done"); } catch (messagingexception e) { throw new runtimeexception(e); } i have required .jar android project. no exception there didn't email.
logcat of android:
04-16 23:40:08.972 18170-18170/com.coderwall.executer w/system.err﹕ android.os.networkonmainthreadexception 04-16 23:40:08.972 18170-18170/com.coderwall.executer w/system.err﹕ @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1126) 04-16 23:40:08.972 18170-18170/com.coderwall.executer w/system.err﹕ @ java.net.inetaddress.lookuphostbyname(inetaddress.java:385) 04-16 23:40:08.972 18170-18170/com.coderwall.executer w/system.err﹕ @ java.net.inetaddress.getlocalhost(inetaddress.java:365) 04-16 23:40:08.972 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.internetaddress.getlocalhostname(internetaddress.java:563) 04-16 23:40:08.972 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.internetaddress._getlocaladdress(internetaddress.java:542) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.internetaddress.getlocaladdress(internetaddress.java:513) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.uniquevalue.getuniquemessageidvalue(uniquevalue.java:99) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.mimemessage.updatemessageid(mimemessage.java:2152) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.mimemessage.updateheaders(mimemessage.java:2181) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.internet.mimemessage.savechanges(mimemessage.java:2141) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ javax.mail.transport.send(transport.java:123) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ com.coderwall.executer.mainactivity.getcomputation(mainactivity.java:275) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ com.coderwall.executer.mainactivity$1$1$2.run(mainactivity.java:90) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ com.coderwall.executer.mainactivity$1$1.onpostexecute(mainactivity.java:109) 04-16 23:40:08.982 18170-18170/com.coderwall.executer w/system.err﹕ @ c com.coderwall.executer.mainactivity$1$1.onpostexecute(mainactivity.java:61) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ android.os.asynctask.finish(asynctask.java:631) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ android.os.asynctask.access$600(asynctask.java:177) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:644) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ android.os.handler.dispatchmessage(handler.java:99) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ android.os.looper.loop(looper.java:137) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ android.app.activitythread.main(activitythread.java:4744) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ java.lang.reflect.method.invokenative(native method) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ java.lang.reflect.method.invoke(method.java:511) 04-16 23:40:08.992 18170-18170/com.coderwall.executer w/system.err﹕ @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 04-16 23:40:09.002 18170-18170/com.coderwall.executer w/system.err﹕ @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 04-16 23:40:09.002 18170-18170/com.coderwall.executer w/system.err﹕ @ dalvik.system.nativestart.main(native method) what missing here?
i have added following line in androidmanifest.xml:
<intent-filter> <action android:name="android.intent.action.main" /> <uses-permission android:name="android.permission.internet"/> <category android:name="android.intent.category.launcher" /> </intent-filter>
you can't make network request in main thread. inside separate thread:
new thread(new runnable(){ public void run(){ //...your code } }).start(); or use asynctask:http://developer.android.com/reference/android/os/asynctask.html
Comments
Post a Comment