blob: 24ddb14265272d6ac8e15c190bada2f3c8d75c3f [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package helper;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class SimpleMailSender {
private String m_MailServer = "unknown";
private String m_Sender = "unknown";
private String m_Recipient = "unknown";
private String m_Subject = "unknown";
private String m_Message = "unknown";
public String getMailServer() {
return m_MailServer;
}
public void setMailServer(String server) {
m_MailServer = server;
}
public String getSender() {
return m_Sender;
}
public void setSender(String sender) {
m_Sender = sender;
}
public String getRecipient() {
return m_Recipient;
}
public void setRecipient(String recipient) {
m_Recipient = recipient;
}
public String getSubject() {
return m_Subject;
}
public void setSubject(String subject) {
m_Subject = subject;
}
public String getMessage() {
return m_Message;
}
public void setMessage(String msg) {
m_Message = msg;
}
public void sendMail() {
if (m_MailServer.equals ("unknown")) {
System.out.println("No Mailserver given ... exiting");
return;
}
if (m_Recipient.equals ("unknown")) {
System.out.println("No Recipient given ... exiting");
return;
}
sendMail(m_MailServer,m_Sender,m_Recipient,m_Subject,m_Message);
}
public void sendMail(String server, String sender,
String recipient, String subject, String msg) {
//setting member variables for reuse
m_MailServer = server;
m_Sender = sender;
m_Recipient = recipient;
m_Subject = subject;
m_Message = msg;
try {
Socket socket = new Socket(m_MailServer, 25);
BufferedReader input =
new BufferedReader(new InputStreamReader(
socket.getInputStream(), "8859_1"));
BufferedWriter output =
new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream(), "8859_1"));
sendline(input, output, "HELO " + getHostName());
sendline(input, output, "MAIL FROM: " + m_Sender);
sendline(input, output, "RCPT TO: <" + m_Recipient + ">");
sendline(input, output, "DATA");
sendline(output, "MIME-Version: 1.0");
sendline(output, "Subject: " + m_Subject);
sendline(output, "From: " + m_Sender);
sendline(output, "To: " + m_Recipient);
sendline(output,
"Content-Type: text/html; charset=\"us-ascii\"\r\n");
// Send the body
sendline(output, m_Message);
sendline(input, output, ".");
sendline(input, output, "QUIT");
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private void sendline(BufferedReader input,
BufferedWriter output, String line) {
try {
output.write(line + "\r\n");
output.flush();
line = input.readLine();
} catch (Exception e) {
e.printStackTrace();
}
}
private void sendline(BufferedWriter output, String line) {
try {
output.write(line + "\r\n");
output.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
private String getHostName() {
String hostname = "";
try {
InetAddress addr = InetAddress.getLocalHost();
hostname = addr.getHostName();
} catch (UnknownHostException e) {
}
return hostname;
}
}