50292529f135ce41f805780421d89c8871e981f9
[utils] / crawler / kiss / src / main / java / org / wamblee / crawler / kiss / notification / MailServer.java
1 /*
2  * Copyright 2006 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.wamblee.crawler.kiss.notification;
17
18 import java.util.Properties;
19
20 import javax.mail.Session;
21
22 import org.apache.commons.mail.Email;
23 import org.apache.commons.mail.EmailException;
24
25 /**
26  * Mail server.
27  *
28  * @author Erik Brakkee
29  */
30 public class MailServer {
31
32     private String _host;
33
34     private int _port;
35
36     private String _username;
37
38     private String _password;
39
40     /**
41      * Constructs the mail server.
42      * 
43      * @param aHost
44      *            Host name of the SMTP server.
45      * @param aPort
46      *            Port name of the SMTP server.
47      * @param aUsername
48      *            Username to use for authentication or null if no
49      *            authentication is required.
50      * @param aPassword
51      *            Password to use for authentication or null if no authenticatio
52      *            is required.
53      */
54     public MailServer(String aHost, int aPort, String aUsername,
55             String aPassword) {
56         _host = aHost;
57         _port = aPort;
58         _username = aUsername;
59         _password = aPassword;
60     }
61
62     /**
63      * Sends an e-mail.
64      * 
65      * @param aMail
66      *            Mail to send.
67      * @throws EmailException
68      *             In case of problems sending the mail.
69      */
70     public void send(Email aMail) throws EmailException {
71         Properties props = new Properties();
72         props.put("mail.transport.protocol", "smtp");
73         props.put("mail.smtp.host", _host);
74         props.put("mail.smtp.port", "" + _port);
75
76         Session mailSession = Session.getInstance(props,
77                 new UsernamePasswordAuthenticator(_username, _password));
78         aMail.setMailSession(mailSession);
79         aMail.send();
80     }
81 }