Subversion Repositories javautils

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
7 daniel-mar 1
/*
2
 * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 *   - Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 *
11
 *   - Redistributions in binary form must reproduce the above copyright
12
 *     notice, this list of conditions and the following disclaimer in the
13
 *     documentation and/or other materials provided with the distribution.
14
 *
15
 *   - Neither the name of Sun Microsystems nor the names of its
16
 *     contributors may be used to endorse or promote products derived
17
 *     from this software without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
 */
31
 
32
package demo;
33
 
34
import java.util.*;
35
import java.net.*;
36
import javax.mail.*;
37
import javax.mail.internet.*;
38
import javax.servlet.jsp.*;
39
import javax.servlet.jsp.tagext.*;
40
 
41
/**
42
 * Custom tag for sending messages.
43
 */
44
public class SendTag extends BodyTagSupport {
45
    private String body;
46
    private String cc;
47
    private String host;
48
    private String recipients;
49
    private String sender;
50
    private String subject;
51
 
52
    /**
53
     * host attribute setter method.
54
     */
55
    public void setHost(String host) {
56
        this.host = host;
57
    }
58
 
59
    /**
60
     * recipient attribute setter method.
61
     */
62
    public void setRecipients(String recipients) {
63
        this.recipients = recipients;
64
    }
65
 
66
    /**
67
     * sender attribute setter method.
68
     */
69
    public void setSender(String sender) {
70
        this.sender = sender;
71
    }
72
 
73
    /**
74
     * cc attribute setter method.
75
     */
76
    public void setCc(String cc) {
77
        this.cc = cc;
78
    }
79
 
80
    /**
81
     * subject attribute setter method.
82
     */
83
    public void setSubject(String subject) {
84
        this.subject = subject;
85
    }
86
 
87
    /**
88
     * Method for processing the end of the tag.
89
     */
90
    public int doEndTag() throws JspException {
91
        Properties props = System.getProperties();
92
 
93
        try {
94
            if (host != null)
95
                props.put("mail.smtp.host", host);
96
            else if (props.getProperty("mail.smtp.host") == null)
97
                props.put("mail.smtp.host", InetAddress.getLocalHost().
98
                    getHostName());
99
        } catch (Exception ex) {
100
            throw new JspException(ex.getMessage());
101
        }
102
        Session session = Session.getDefaultInstance(props, null);
103
 
104
        Message msg = new MimeMessage(session);
105
        InternetAddress[] toAddrs = null, ccAddrs = null;
106
 
107
        try {
108
            if (recipients != null) {
109
                toAddrs = InternetAddress.parse(recipients, false);
110
                msg.setRecipients(Message.RecipientType.TO, toAddrs);
111
            } else
112
                throw new JspException("No recipient address specified");
113
 
114
            if (sender != null)
115
                msg.setFrom(new InternetAddress(sender));
116
            else
117
                throw new JspException("No sender address specified");
118
 
119
            if (cc != null) {
120
                ccAddrs = InternetAddress.parse(cc, false);
121
                msg.setRecipients(Message.RecipientType.CC, ccAddrs);
122
            }
123
 
124
            if (subject != null)
125
                msg.setSubject(subject);
126
 
127
            if ((body = getBodyContent().getString()) != null)
128
                msg.setText(body);
129
            else
130
                msg.setText("");
131
 
132
            Transport.send(msg);
133
 
134
        } catch (Exception ex) {
135
            throw new JspException(ex.getMessage());
136
        }
137
 
138
        return(EVAL_PAGE);
139
   }
140
}
141