JavaMail api usage in a web application - java

I am developing a Java EE 6 web application, i want to add email notifcations to users who will subscribe in this web application.
the applications is pretty simple buts it needs to send users responses via email.
I learned that there is a JavaMail API available, should I use it ? or there is a better approach to do this ?
I am not asking on how to use it, i am asking wether its recommended or not, for safety and authenitaction measures, also performance ofcourse

I think the answer has more to do with the organization in which you develop the app than the app itself.
If you're writing this for yourself or another organization, it's likely that you'll want a mail server to handle sending those emails. You can have your app send the request to create the email, but the mail server will do what it was born to do and send the email.

Related

Encrypting/hiding portions of the source code

I've made a simple mailing app that takes in email credentials and uses it to send emails of certain kinds to selected addresses. Problem is, I've had to input the credentials right into the code, so anyone who uses dex2jar can get the source code and get the email used for forwarding and easily make the app obsolete.
I imagine I'm not the only one facing this issue, so what are some ways to make my code secure?
No matter how good of a technique you use to hide the credentials, if it's in the code then it can always be found.
Instead of hard coding them in, you could perhaps let the user specify them when he starts the app? If that can't be avoided you could instead have a remote service that will do the sending and forward your request to that.
You can not both connect to an e-mail account and keep those same users out of said e-mail account. Consider using a hosted server as part of the project to securely connect to the e-mail account from the server level and process these e-mails remotely.

Java Web Application not sending email through Gmail when deployed to Amazon cloud

I have developed a Java web application, one of the required features is sending emails. The emails are sent using my own Google mail account, and this works locally.
However, when I deploy my application on-line to Amazon, most of the application is working fine but it does not send the emails.
Has anyone faced that problem before?
Even without knowing the specific problem, the answer is that gmail is not designed for machine sending (or receiving). You'll hit relatively small capacity limits and be given a 24-hour vacation. The easiest limit to hit is by sending/receiving attachments.
Sending email via AWS SES works much better.

Send text/email from portable desktop java application

This question is more of like a requirement feasibility study.
Requirement: I have a java based portable(USB)application. I need to add a feature where the user can send text/email from this application.
I know that someone, who can plugin the application via USB , can open up the browser and send an email. Fairly simple. However, if I want that the user need not open the browser and send a text/email, is that possible ?
I know how to send email (using Java Mail API) from a Java Servlet. I want to achieve the same from this portable java application.
Appreciate any help. Thanks.

Sync desktop application with android application

I want to raise an event from my Android application to my desktop application which is in Java. Can I do so? If yes, which API to use? Any examples or code snippets?
Both android and desktop applications are clients. Two clients can talk to each other via server or at least initialize their connection via server that is running on pre-defined location (IP address). So, you need some server that allows to do this.
You can probably use (or abuse) some 3rd party servers for this. For example if your desktop application "knows" the phone number it can send SMS via one of available web services. The android application will catch the SMS and take information from its text. You probably can use Skype installed on your machine or email to send messages among applications too. But better way is to develop your own server that exposes RESTful API and use it for the negotiation.

Patterns for building chat application with XMPP

I built an Android application with Google App Engine Server. Now I want to add simple chat to my app. And I have some questions.
My users registered with theirs desired email domains like hotmail.com, yahoo.com and even more esoteric domains, thats mean that I need to create JID for them? if so is Google App engine provide JID creations with my app domain that i can manipulate?
I read that Google App Engine act as XMPP client so I need Xmpp Server that can receive and send XMPP messages. So why do I GAE for? is Openfire is my answer? can I integrate Openfire with GAE?
I Also read that if I want to use XMPP in GAE and Android in need aSmack Api for my client and that it is working on HTTP. So I guess that I'll need to poll the server for messages every couple seconds. Is there a better pattern?
can I integrate Openfire with GAE?
You cannot run Openfire on GAE because GAE works only on HTTP so you won't be able to connect over sockets as Openfire does.
My users registered with theirs desired email domains like hotmail.com, yahoo.com and even more esoteric domains, thats mean that I need to create JID for them? if so is Google App engine provide JID creations with my app domain that i can manipulate?
If I understand your question correctly, you shouldn't have any problems here. As long as you're not a spammer, we don't place any restrictions on what domains you can send to.
I read that Google App Engine act as XMPP client so I need Xmpp Server that can receive and send XMPP messages. So why do I GAE for? is Openfire is my answer? can I integrate Openfire with GAE?
You can send and receive XMPP messages via the xmpp API (this is the python version). This calls into the Google Talk infrastructure. You don't have access to what you'd traditionally call an "XMPP server", but you do have access to basic XMPP functionality.
I don't know a lot about OpenFire, but there is a Trusted Tester program for outbound sockets that you can sign up for. This is what you would need if you desire an external XMPP server.
I Also read that if I want to use XMPP in GAE and Android in need aSmack Api for my client and that it is working on HTTP. So I guess that I'll need to poll the server for messages every couple seconds. Is there a better pattern?
I should prefix this by saying I don't know a whole lot about Android or aSmack, but that won't stop me from taking a stab at answering your question. :-)
I think this depends on your usecase, but I can't think of any situation you'd need to do this off the top of my head. Will the user of your application have their own JID on a server they registered for? If so, I don't see any reason you'd have to connect via HTTP, unless that's all aSmack supports. The main use-case for BOSH/XMPP-over-HTTP is in the browser where you don't really have access to open raw sockets.
If you want to use XMPP as a messaging/notification service the user won't know about, it may be more complex. I should note that you can always set up an XMPP server on Google Compute Engine.

Categories