Is it possible to build a custom email client for Gmail using Java APIs?
Or only Google can do that?
1
Yes, you can connect to Gmail using IMAP and POP3. In other words, you can use any (?) IMAP/POP3 client, such as Mozilla Thunderbird or Outlook. You can also write your own client using Java IMAP client.
4
Yes you can
here is an example I made for college project, try change the yahoo server to Gmail server
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
public class Email {
public static void main(String[] args) throws UnknownHostException,IOException {
Socket so = new Socket("smtp.mail.yahoo.com",25); // you change this to google's email sever
BufferedReader inputStream = new BufferedReader(new InputStreamReader(so.getInputStream()));
PrintWriter outputStream = new PrintWriter(new OutputStreamWriter(so.getOutputStream()),true);
String enemail = JOptionPane.showInputDialog(null, "Enter your e-mail in BASEA64 code");
String password = JOptionPane.showInputDialog(null, "Enter your password in BASEA64 code");
String from = JOptionPane.showInputDialog(null, "From");
String to = JOptionPane.showInputDialog(null, "To");
String subject = JOptionPane.showInputDialog(null, "Subject");
String msg = JOptionPane.showInputDialog(null, "Message");
outputStream.println("HELO ");
System.out.println(inputStream.readLine());
outputStream.println("AUTH LOGIN");
System.out.println(inputStream.readLine());
//You enter your e-mail here , in BASE64 code
outputStream.println(enemail);
System.out.println(inputStream.readLine());
//You enter your password here , in BASE64 code
outputStream.println(password);
System.out.println(inputStream.readLine());
outputStream.println("VRFY");
System.out.println(inputStream.readLine());
outputStream.println("MAIL FROM:<"+from+">");
System.out.println(inputStream.readLine());
outputStream.println("RCPT TO:<"+to+">");
System.out.println(inputStream.readLine());
outputStream.println("DATA");
System.out.println(inputStream.readLine());
outputStream.println("Subject:"+subject);
outputStream.println("FROM :<"+from+">");
outputStream.println("TO :<"+to+">");
outputStream.println(msg);
outputStream.println("");
outputStream.println(".");
so.close();
}
}
2