トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

JSPの応用:JavaMail

JavaMail

 ライブラリのインストール

  • JavaMailをSunの公式サイトからダウンロードし、解凍したフォルダのlib以下のmailapi.jar、smtp.jar、pop.jarなどを必要に応じて、CLASSPATHに追加する。
  • ウェブアプリケーションの場合にはWEB-INF/libにコピーする

 JavaMailを使った送信例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page import="java.util.Properties"%>
<%@page import="javax.mail.Session"%>
<%@page import="javax.mail.internet.MimeMessage"%>
<%@page import="javax.mail.internet.InternetAddress"%>
<%@page import="javax.mail.Message"%>
<%@page import="javax.mail.Transport"%>
<%@page import="java.util.Date"%>
<%@page import="javax.mail.MessagingException"%>
<%@page import="javax.mail.Address"%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>メール送信</title>
</head>
<body>
<%    request.setCharacterEncoding("utf-8"); %>    
    <form method="post" action="${pageContext.request.requestURI}">
        SMTPサーバ:
        <input type="text" name="smtpServer" value="${param.smtpServer}"><br />
        SMTP認証:
        <input type="checkbox" name="smtpAuth" />SMTP Auth
        ID:
        <input type="text" name="smtpAuthID" value="${param.smtpAuthID}">
        Password:
        <input type="password" name="smtpAuthP" value="${param.smtpAuthP}"><br />
        送信元アドレス:
        <input type="text" name="fromAddress" value="${param.fromAddress}"><br />
        送信元の名前:
        <input type="text" name="fromName" value="${param.fromName}"><br />
        送信先アドレス:
        <input type="text" name="toAddress" value="${param.toAddress}"><br />
        メール件名:
        <input type="text" name="subject" value="${param.subject}"><br />
        内容:<br />
        <textarea name="content" rows="30" cols="80">${param.content}</textarea><br />
        <input type="submit" value="送信"> 
    </form>
<c:if test="${!empty param.smtpServer}">
<%
    Properties properties = System.getProperties();
    properties.put("mail.smtp.host", request.getParameter("smtpServer"));
    if(request.getParameter("smtpAuth")!=null) {
        properties.put( "mail.smtp.auth", "true" );
    }
    Session mailSession = Session.getDefaultInstance(properties,null);
    try {
        MimeMessage mimeMessage = new MimeMessage(mailSession);
        // 送信元メールアドレスと送信者名を指定
        mimeMessage.setFrom(new InternetAddress(request.getParameter("fromAddress"), request.getParameter("fromName"),"iso-2022-jp"));
        // 送信先メールアドレスを指定
        mimeMessage.setRecipients(Message.RecipientType.TO, request.getParameter("toAddress"));
        // メールのタイトルを指定
        mimeMessage.setSubject(request.getParameter("subject") , "iso-2022-jp");
        mimeMessage.setText(request.getParameter("content"),"iso-2022-jp");
        mimeMessage.setSentDate(new Date());
        if(request.getParameter("smtpAuth")!=null) {
            Transport transport = mailSession.getTransport("smtp");
            transport.connect(
                    request.getParameter("smtpServer"),
                    request.getParameter("smtpAuthID"),
                    request.getParameter("smtpAuthP")
                );
            Address[] toList = { new InternetAddress(request.getParameter("toAddress")),};
            transport.sendMessage(mimeMessage,toList);
        } else {
            Transport.send(mimeMessage);
        }
        out.println("メールを送信しました。");
    } catch(MessagingException e) {
        e.printStackTrace();
        out.println("送信エラー:"+e.getMessage());
    }
%>
</c:if>
</body>
</html>
GitHub.exe

最終更新時間:2007年12月06日 16時28分59秒