How to create a simple pop3 email server? - java

The server has to handle requests from a pop3 client. I was able to create an smtp email server, which can handle Telnet communication.
For the pop3 server, I have to support a pop3 client (any one). I tried Thunderbird, but I don't know what kind of stream is coming from the Thunderbird and how to properly handle the communication between the server and the pop3 client.
I could use any pop3 client and the server doesn't have to handle encryption. I just need something that is simple and works.

Related

how to secure Socket communication so that only authorised client application can connect or listen to the port of server application

I have server application which runs on local host and the client also runs on local host.
As of now I am using java.net.serversocket and any application which has the ip and port detail of server can listen to the port.
My requirement is to secure the ports or secure the communication between the server and client application such that only my application client (authorised) one can listen to the ports or connect to server application. The data sent to and from client and server also has to be secured.
Apologies if naming conventions are not correct. I have been searching for solution and couldn't get anything for this, all I got is how to connect and make application communicate using socket programming , but no where I got the answer as how to secure the communication.
What you need here is some sort of authentication method to authorise only your client to communicate with the server. If you are using an existing communication protocol then it might have a specification for authentication already. If you are using your own protocol then you'll have come up with your own design for authentication.
It could be as simple as the server issuing some sort of request for authentication to the client. The client would then have to provide a satisfactory response (eg a user/password) otherwise the server would close the connection.
I would recommend taking a look at how some other protocols (eg HTTP) handle authentication to get some insight and also understand potential pitfalls.

Is it possible to track the smtp host by code in java?

I need that the application be able to track the smtp host by the email account, because it have to be capable to work with any mail account.
There is a way to do this?
Short answer is: no you can't.
To some degree you can get a smtp host from an email address, but not all email providers have an smtp server, and most email providers will require user specific authentication when using their smtp servers.
It's still possible to send mail from your computer when your email provider doesn't provide an smtp server because most Internet providers also provide you with an smtp server. You can't determine this smtp server based on someone's emailadres.
If your application always has to be able to send mail I would look into a free smtp server somewhere, or host your own.

Local SMTP server for ubuntu

I'm using a Java class that sends mails using JavaMail. I really need to use it even though authentication is not yet implemented. Basically it just has SMTP hostname, port, from, to, subject and body.
I need a SMTP server for it. Most of the ones I've tried use authentication.
Does anyone know maybe a local smtp server for ubuntu?
It doesn't have to be very complex/secure because it's just a proof of concept.
Something like sending a text email from my gmail account to my yahoo account. Thanks

Java mail: sending email without SMTP

I want to send an email without using SMTP protocol. Is that possible to implement using Java? Since, my remote machine does not have access to google, yahoo and other accounts. and even my office mail can not be configured using SMTP server due to some security issues. Is any other way to send an email from remote machine.
The JavaMail section at java.sun.com lists many third party products that plugin to the JavaMail API. Hopefully one of those will fit your needs but I can't be more specific because you don't say what non-SMTP sending options you have open to you.
You could setup Your own SMTP server on remote machine, IMHO, it is better than incorporate it into program directly.
I want to send an email without using
SMTP protocol. Is that possible to
implement using Java?
With Java you can implement any Layer-5 network protocol.
ALL mail servers using SMTP to receive messages. At any time you have to connect with SMTP to the destination mail server.
If you cannot get out from local network to the Internet with some services you will need a proxy or network tunnel to connect the destination.

Sending email in Java

I have read that to send email in Java I need to obtain my ISP's SMTP address, but if I am intending to host my web app online, will this be my hosts ISP SMTP address?
EDIT: So I need to find out my clients ISP's SMTP address and send via this?
JavaMail is the built-in API for e-mail.
Ask your ISP if the host runs sendmail or equivalent locally (the web server host). It may be an advantage to hand off to sendmail as early as possible. In other words, try "localhost" as the SMTP server name.
Why? JavaMail is a simple SMTP client. It doesn't deal with DNS MX records. It doesn't have a built-in capability to queue mail if the SMTP server is unavailable. There's the default Java infinte DNS cache so that a DNS change to the SMTP host won't register with your app (tunable, but one more tuning to do). These are things that a local sendmail (or equivalent) process will do.
So if you can hand off the e-mail to a local sendmail/equivalent, that may improve e-mail delivery reliability. Assuming the local sendmail works, of course. It's how we configure some in-house apps that uses JavaMail to send mail and fixed all the above problems.
No, unless your webhost is the same as your ISP or your webhost also offers SMTP services.
In response to your edit, yes you need your ISP's SMTP address by the sound of things.
It will be the SMTP address you want to forward email through.
If you want to send email through your ISP account then it will be that SMTP.

Categories