SMTP mail Program using Sockets
Here is a program which will send a mail by SMTP server
The program is working and i had tested it many times :)
import java.io.*;
import java.awt.*;
import java.net.*;
public class SendEmailApp
{
public String sendReminderTo(String host, String email, String to)
{
String s, status;
String server = host;
String from = email;
String to = to;
System.out.println(server + " " + from + " " + to);
String subject = new String("hi.. ");
String data = new String("hi...what r u doing man!");
data = data + "\n" + "Nothing special";
System.out.println(data);
try{
Socket socket = new Socket(server,25);
PrintWriter printer = new PrintWriter(socket.getOutputStream(),true);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
s = reader.readLine();
if(!s.startsWith("220")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Connection made to host.\n");
}
printer.println("helo " + server);
s = reader.readLine();
if(!s.startsWith("250")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Computers introduced properly.\n");
}
System.out.println(from);
printer.println("mail from: " + from);
s = reader.readLine();
if(!s.startsWith("250")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Sender OK.\n");
}
printer.println("rcpt to: " + to);
s = reader.readLine();
if(!s.startsWith("250")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Recipient OK.\n");
}
printer.println("data");
s = reader.readLine();
if(!s.startsWith("354")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Ready for data transfer.\n");
}
printer.println("subject: " + subject);
printer.println(data);
printer.println(".");
System.out.println("Data transfer complete.\n");
s = reader.readLine();
System.out.println("after readline");
if(!s.startsWith("250")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Message accepted for delivery.\n");
}
printer.println("quit");
s = reader.readLine();
if(!s.startsWith("221")){
System.out.println("Error: " + s.substring(4) + "\n");
printer.println("quit");
System.out.println("Closing connection.\n");
return s.substring(4);
}else{
System.out.println("Connection closed.\n");
}
reader.close();
printer.close();
socket.close();
}
catch(Exception ex)
{
System.out.println("Error: " + ex + "\n");
ex.printStackTrace();
return "failure";
}
return "Success";
}
}
|