1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/*******************************************************************************
2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Copyright (c) 2000, 2006 IBM Corporation and others.
3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * All rights reserved. This program and the accompanying materials
4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * are made available under the terms of the Eclipse Public License v1.0
5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * which accompanies this distribution, and is available at
6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * http://www.eclipse.org/legal/epl-v10.html
7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Contributors:
9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *     IBM Corporation - initial API and implementation
10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *******************************************************************************/
11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpackage org.eclipse.releng;
12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/**
14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * A Class that sends build related email messages.  host, sender, recipient and
15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * build related information set in monitor.properties
16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll */
17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.activation.DataHandler;
19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.activation.FileDataSource;
20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.mail.*;
21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.mail.internet.*;
22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.File;
24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.StringTokenizer;
25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.Properties;
26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpublic class Mailer {
28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// flag that determines whether or not to send mail
30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	boolean sendMail = true;
31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// the Object that holds the key value pairs in monitor.properties
33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private BuildProperties buildProperties;
34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	//convert the comma separated list of email addressed into an array of Address objects
36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private Address[] getAddresses(String recipientList) {
37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		int i = 0;
38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		StringTokenizer recipients = new StringTokenizer(recipientList, ",");
39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Address[] addresses = new Address[recipients.countTokens()];
40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		while (recipients.hasMoreTokens()) {
42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			try {
43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				addresses[i++] = new InternetAddress(recipients.nextToken());
44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			} catch (AddressException e) {
45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				System.out.println("Unable to create address");
46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return addresses;
49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public Mailer(){
52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		this("monitor.properties");
53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public Mailer(String buildPropertiesPath){
55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		buildProperties = new BuildProperties(buildPropertiesPath);
56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		if (buildProperties.getHost().equals("")||buildProperties.getSender().equals("")||buildProperties.getToRecipientList().equals("")){
57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			sendMail=false;
58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public static void main(String args[]) {
63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Mailer mailer=new Mailer(args[0]);
64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		mailer.sendTextMessage(args[1],args[2]);
65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void sendMessage(String aSubject, String aMessage) {
68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		if (aSubject == null || aMessage == null || sendMail == false){
69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			printEmailFailureNotice(aSubject,aMessage);
70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Get system properties
73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Properties props = System.getProperties();
74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Setup mail server
76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		props.put("mail.smtp.host", buildProperties.getHost());
77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Get session
79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Session session = Session.getDefaultInstance(props, null);
80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Define message
82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		MimeMessage message = new MimeMessage(session);
83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		try {
85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the from address
87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setFrom(new InternetAddress(buildProperties.getSender()));
88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the to address
90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.addRecipients(Message.RecipientType.TO, getAddresses(buildProperties.getToRecipientList()));
91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the subject
93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setSubject(buildProperties.getBuildSubjectPrefix()+
94402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll						"Build "
95402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ buildProperties.getBuildid()
96402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ " (Timestamp:  "
97402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ buildProperties.getTimestamp()
98402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ "):"
99402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ aSubject);
100402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
101402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the content
102402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setText(
103402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				"Build "
104402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ buildProperties.getBuildid()
105402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ " (Timestamp: "
106402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ buildProperties.getTimestamp()
107402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ "):  "
108402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ aMessage);
109402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
110402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Send message
111402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			Transport.send(message);
112402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
113402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (AddressException e) {
114402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			e.printStackTrace();
115402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (MessagingException e) {
116402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			e.printStackTrace();
117402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
118402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
119402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
120402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void sendTextMessage(String aSubject, String aMessage) {
121402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		if (aSubject == null || aMessage == null || sendMail == false){
122402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			printEmailFailureNotice(aSubject,aMessage);
123402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
124402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
125402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Get system properties
126402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Properties props = System.getProperties();
127402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
128402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Setup mail server
129402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		props.put("mail.smtp.host", buildProperties.getHost());
130402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
131402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Get session
132402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Session session = Session.getDefaultInstance(props, null);
133402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
134402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Define message
135402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		MimeMessage message = new MimeMessage(session);
136402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
137402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		try {
138402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
139402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the from address
140402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setFrom(new InternetAddress(buildProperties.getSender()));
141402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
142402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the to address
143402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.addRecipients(Message.RecipientType.BCC, getAddresses(buildProperties.getTextRecipientList()));
144402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
145402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the subject
146402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setSubject(buildProperties.getBuildSubjectPrefix()+
147402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll						"Build "
148402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ buildProperties.getBuildid()
149402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ ":"
150402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll							+ aSubject);
151402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
152402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the content
153402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setText(aMessage);
154402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
155402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Send message
156402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			Transport.send(message);
157402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
158402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (AddressException e) {
159402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			e.printStackTrace();
160402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (MessagingException e) {
161402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			e.printStackTrace();
162402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
163402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
164402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
165402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void sendMultiPartMessage(
166402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// a method for sending mail with attachments
167402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	String aSubject, String aMessage, String[] attachments) {
168402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		if (aSubject == null || aMessage == null || sendMail == false){
169402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			printEmailFailureNotice(aSubject,aMessage);
170402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
171402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
172402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Get system properties
173402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Properties props = System.getProperties();
174402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
175402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Setup mail server
176402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		props.put("mail.smtp.host", buildProperties.getHost());
177402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
178402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Get session
179402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Session session = Session.getDefaultInstance(props, null);
180402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
181402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// Define message
182402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		MimeMessage message = new MimeMessage(session);
183402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
184402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Multipart mp = new MimeMultipart();
185402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
186402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		try {
187402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the from address
188402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setFrom(new InternetAddress(buildProperties.getSender()));
189402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
190402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the to address
191402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.addRecipients(Message.RecipientType.TO, getAddresses(buildProperties.getToRecipientList()));
192402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
193402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// Set the subject
194402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setSubject(buildProperties.getBuildSubjectPrefix()+
195402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			"Build "
196402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				+ buildProperties.getBuildid()
197402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				+ " (Timestamp:  "
198402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				+ buildProperties.getTimestamp()
199402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				+ "):"
200402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				+ aSubject);
201402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
202402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// create and fill the first message part
203402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			MimeBodyPart part = new MimeBodyPart();
204402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			part.setText(
205402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				"Build "
206402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ buildProperties.getBuildid()
207402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ " (Timestamp: "
208402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ buildProperties.getTimestamp()
209402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ "):  "
210402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					+ aMessage);
211402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			mp.addBodyPart(part);
212402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
213402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			//for each attachment create new message part
214402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			for (int i = 0; i < attachments.length; i++) {
215402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				MimeBodyPart attachmentPart = new MimeBodyPart();
216402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				// attach the file to the message
217402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				FileDataSource attachment = new FileDataSource(attachments[i]);
218402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				attachmentPart.setDataHandler(new DataHandler(attachment));
219402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				File attachmentFile=new File(attachments[i]);
220402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				attachmentPart.setFileName(attachmentFile.getParent()+"-"+attachmentFile.getName());
221402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				mp.addBodyPart(attachmentPart);
222402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
223402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
224402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// add the Multipart to the message
225402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			message.setContent(mp);
226402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
227402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			Transport.send(message);
228402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
229402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (AddressException e) {
230402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (MessagingException e) {
231402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
232402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
233402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
234402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private void printEmailFailureNotice(String aSubject, String aMessage){
235402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		System.out.println("Email failed.  Settings:");
236402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		System.out.println("\nhost="+buildProperties.getHost()+"\nsender="+buildProperties.getSender()+"\nrecipients="+buildProperties.getToRecipientList());
237402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		System.out.println("\nSubject="+aSubject+"\nMessage="+aMessage);
238402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return;
239402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
240402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
241402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	/**
242402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 * Returns the buildProperties.
243402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 * @return BuildProperties
244402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 */
245402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public BuildProperties getBuildProperties() {
246402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return buildProperties;
247402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
248402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
249402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	/**
250402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 * Sets the buildProperties.
251402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 * @param buildProperties The buildProperties to set
252402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 */
253402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void setBuildProperties(BuildProperties buildProperties) {
254402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		this.buildProperties = buildProperties;
255402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
256402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
257402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll}
258