package net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Smtp implements Runnable {
String recipientEmail = null;
String senderEmail = null;
String serverHostName = null;
String message = null;
int smtpPort = 25;
Socket socket;
PrintWriter pw;
BufferedReader br;
InetAddress ia;
InetAddress lina;
Thread thread = new Thread(this);
public void emailLyon(String msg) {
email(msg,
"192.168.1.95",
"lyon@docjava.com",
"lyon@docjava.com");
}
public void email(String msg,
String serverHostName,
String recipientEmail,
String senderEmail) {
setSenderEmail(senderEmail);
setRecipientEmail(recipientEmail);
setMailServerHostName(serverHostName);
setMessage(msg);
thread.start();
}
public void start() {
thread.start();
}
public void run() {
try {
send();
} catch (IOException e) {
e.printStackTrace();
}
}
public void send() throws IOException {
socket = new Socket(serverHostName, smtpPort);
try {
ia = socket.getInetAddress();
lina = ia.getLocalHost();
pw = new PrintWriter(socket.getOutputStream());
br = new BufferedReader(
new InputStreamReader(
socket.getInputStream()
)
);
sendline("HELO " + lina.toString());
sendline("MAIL FROM:" + senderEmail);
sendline("RCPT TO:" + recipientEmail);
sendline("DATA");
sendline(message);
sendline(".");
} catch (Exception c) {
socket.close();
System.out.println(
"Error; message send failed:\n "
+ c.getMessage());
}
socket.close();
}
void sendline(String data) throws IOException {
pw.println(data);
pw.flush();
String s = br.readLine();
System.out.println("sendline in:" + s);
}
public void setMessage(String msg) {
message = msg;
}
public void setSenderEmail(String email) {
senderEmail = email;
}
public void setRecipientEmail(String email) {
recipientEmail = email;
}
public void setMailServerHostName(String host) {
serverHostName = host;
}
public static void main(String args[]) {
Smtp sm = new Smtp();
sm.emailLyon("This is a test!!");
System.out.println("Thread was started to send an email");
}
}