1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir package helper;
28*cdf0e10cSrcweir 
29*cdf0e10cSrcweir import java.io.BufferedReader;
30*cdf0e10cSrcweir import java.io.BufferedWriter;
31*cdf0e10cSrcweir import java.io.InputStreamReader;
32*cdf0e10cSrcweir import java.io.OutputStreamWriter;
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir import java.net.InetAddress;
35*cdf0e10cSrcweir import java.net.Socket;
36*cdf0e10cSrcweir import java.net.UnknownHostException;
37*cdf0e10cSrcweir 
38*cdf0e10cSrcweir 
39*cdf0e10cSrcweir public class SimpleMailSender {
40*cdf0e10cSrcweir     private String m_MailServer = "unknown";
41*cdf0e10cSrcweir     private String m_Sender = "unknown";
42*cdf0e10cSrcweir     private String m_Recipient = "unknown";
43*cdf0e10cSrcweir     private String m_Subject = "unknown";
44*cdf0e10cSrcweir     private String m_Message = "unknown";
45*cdf0e10cSrcweir 
46*cdf0e10cSrcweir 
47*cdf0e10cSrcweir     public String getMailServer() {
48*cdf0e10cSrcweir         return m_MailServer;
49*cdf0e10cSrcweir     }
50*cdf0e10cSrcweir 
51*cdf0e10cSrcweir     public void setMailServer(String server) {
52*cdf0e10cSrcweir         m_MailServer = server;
53*cdf0e10cSrcweir     }
54*cdf0e10cSrcweir 
55*cdf0e10cSrcweir     public String getSender() {
56*cdf0e10cSrcweir         return m_Sender;
57*cdf0e10cSrcweir     }
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir     public void setSender(String sender) {
60*cdf0e10cSrcweir         m_Sender = sender;
61*cdf0e10cSrcweir     }
62*cdf0e10cSrcweir 
63*cdf0e10cSrcweir     public String getRecipient() {
64*cdf0e10cSrcweir         return m_Recipient;
65*cdf0e10cSrcweir     }
66*cdf0e10cSrcweir 
67*cdf0e10cSrcweir     public void setRecipient(String recipient) {
68*cdf0e10cSrcweir         m_Recipient = recipient;
69*cdf0e10cSrcweir     }
70*cdf0e10cSrcweir 
71*cdf0e10cSrcweir     public String getSubject() {
72*cdf0e10cSrcweir         return m_Subject;
73*cdf0e10cSrcweir     }
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir     public void setSubject(String subject) {
76*cdf0e10cSrcweir         m_Subject = subject;
77*cdf0e10cSrcweir     }
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir     public String getMessage() {
80*cdf0e10cSrcweir         return m_Message;
81*cdf0e10cSrcweir     }
82*cdf0e10cSrcweir 
83*cdf0e10cSrcweir     public void setMessage(String msg) {
84*cdf0e10cSrcweir         m_Message = msg;
85*cdf0e10cSrcweir     }
86*cdf0e10cSrcweir 
87*cdf0e10cSrcweir     public void sendMail() {
88*cdf0e10cSrcweir         if (m_MailServer.equals ("unknown")) {
89*cdf0e10cSrcweir             System.out.println("No Mailserver given ... exiting");
90*cdf0e10cSrcweir             return;
91*cdf0e10cSrcweir         }
92*cdf0e10cSrcweir         if (m_Recipient.equals ("unknown")) {
93*cdf0e10cSrcweir             System.out.println("No Recipient given ... exiting");
94*cdf0e10cSrcweir             return;
95*cdf0e10cSrcweir         }
96*cdf0e10cSrcweir         sendMail(m_MailServer,m_Sender,m_Recipient,m_Subject,m_Message);
97*cdf0e10cSrcweir     }
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir     public void sendMail(String server, String sender,
100*cdf0e10cSrcweir         String recipient, String subject, String msg) {
101*cdf0e10cSrcweir         //setting member variables for reuse
102*cdf0e10cSrcweir         m_MailServer = server;
103*cdf0e10cSrcweir         m_Sender = sender;
104*cdf0e10cSrcweir         m_Recipient = recipient;
105*cdf0e10cSrcweir         m_Subject = subject;
106*cdf0e10cSrcweir         m_Message = msg;
107*cdf0e10cSrcweir 
108*cdf0e10cSrcweir         try {
109*cdf0e10cSrcweir             Socket socket = new Socket(m_MailServer, 25);
110*cdf0e10cSrcweir             BufferedReader input =
111*cdf0e10cSrcweir                 new BufferedReader(new InputStreamReader(
112*cdf0e10cSrcweir                         socket.getInputStream(), "8859_1"));
113*cdf0e10cSrcweir             BufferedWriter output =
114*cdf0e10cSrcweir                 new BufferedWriter(new OutputStreamWriter(
115*cdf0e10cSrcweir                         socket.getOutputStream(), "8859_1"));
116*cdf0e10cSrcweir 
117*cdf0e10cSrcweir             sendline(input, output, "HELO " + getHostName());
118*cdf0e10cSrcweir             sendline(input, output, "MAIL FROM: " + m_Sender);
119*cdf0e10cSrcweir             sendline(input, output, "RCPT TO: <" + m_Recipient + ">");
120*cdf0e10cSrcweir             sendline(input, output, "DATA");
121*cdf0e10cSrcweir             sendline(output, "MIME-Version: 1.0");
122*cdf0e10cSrcweir             sendline(output, "Subject: " + m_Subject);
123*cdf0e10cSrcweir             sendline(output, "From: " + m_Sender);
124*cdf0e10cSrcweir             sendline(output, "To: " + m_Recipient);
125*cdf0e10cSrcweir             sendline(output,
126*cdf0e10cSrcweir                 "Content-Type: text/html; charset=\"us-ascii\"\r\n");
127*cdf0e10cSrcweir 
128*cdf0e10cSrcweir             // Send the body
129*cdf0e10cSrcweir             sendline(output, m_Message);
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir             sendline(input, output, ".");
132*cdf0e10cSrcweir             sendline(input, output, "QUIT");
133*cdf0e10cSrcweir             socket.close();
134*cdf0e10cSrcweir         } catch (Exception e) {
135*cdf0e10cSrcweir             e.printStackTrace();
136*cdf0e10cSrcweir         }
137*cdf0e10cSrcweir     }
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir     private void sendline(BufferedReader input,
140*cdf0e10cSrcweir         BufferedWriter output, String line) {
141*cdf0e10cSrcweir         try {
142*cdf0e10cSrcweir             output.write(line + "\r\n");
143*cdf0e10cSrcweir             output.flush();
144*cdf0e10cSrcweir             line = input.readLine();
145*cdf0e10cSrcweir         } catch (Exception e) {
146*cdf0e10cSrcweir             e.printStackTrace();
147*cdf0e10cSrcweir         }
148*cdf0e10cSrcweir     }
149*cdf0e10cSrcweir 
150*cdf0e10cSrcweir     private void sendline(BufferedWriter output, String line) {
151*cdf0e10cSrcweir         try {
152*cdf0e10cSrcweir             output.write(line + "\r\n");
153*cdf0e10cSrcweir             output.flush();
154*cdf0e10cSrcweir         } catch (Exception e) {
155*cdf0e10cSrcweir             e.printStackTrace();
156*cdf0e10cSrcweir         }
157*cdf0e10cSrcweir     }
158*cdf0e10cSrcweir 
159*cdf0e10cSrcweir     private String getHostName() {
160*cdf0e10cSrcweir         String hostname = "";
161*cdf0e10cSrcweir 
162*cdf0e10cSrcweir         try {
163*cdf0e10cSrcweir             InetAddress addr = InetAddress.getLocalHost();
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir             hostname = addr.getHostName();
166*cdf0e10cSrcweir         } catch (UnknownHostException e) {
167*cdf0e10cSrcweir         }
168*cdf0e10cSrcweir 
169*cdf0e10cSrcweir         return hostname;
170*cdf0e10cSrcweir     }
171*cdf0e10cSrcweir }
172