SAK 図書館
JAVA Servlet、JSP 基礎編11 - SMTP メール送信、javax.mail、MimeMessage
■SMTP メール送信 mail.jar、activation.jar を使用して、メール送信を行ってみた。 例の S-JIS の扱いが変わったため、MS932 では ? になるコードはないのだが、 メールサーバによっては MS932 ではうまく表示できない。 よって、メールは iso-2022-jp を使うしかない。 この場合、「−」、「〜」などが ? になってしまう。 replace で半角コードに置き換える手しかないように思う。 /* ======================================================================== メール送信 ======================================================================== */ import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.util.Properties; import java.util.Date; import javax.mail.Session; import javax.mail.Message; import javax.mail.Transport; import javax.mail.internet.MimeMessage; import javax.mail.internet.InternetAddress; public class sndmail extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String msg = "メール送信しました。"; String text = ""; // フォームデータ取得 Enumeration names = request.getParameterNames(); while (names.hasMoreElements()) { String name = (String)names.nextElement(); text += "■" + name + ":\n" + request.getParameter(name) + "\n"; } // メール送信 try { Properties pt = System.getProperties(); // SMTP サーバーアドレス pt.put("mail.smtp.host", "sak-design"); // メール準備 Session session = Session.getDefaultInstance(pt, null); MimeMessage ml = new MimeMessage(session); // 送信元 ml.setFrom(new InternetAddress("sak@sak-design", "SAK", "iso-2022-jp")); // 送信先 ml.setRecipients(Message.RecipientType.TO, "sak@sak-design"); // 形式 ml.setHeader("Content-Type", "text/plain"); // タイトル ml.setSubject("タイトル", "iso-2022-jp"); // 本文 text = text.replace('@', '1'); text = text.replace('A', '2'); text = text.replace('B', '3'); text = text.replace('C', '4'); text = text.replace('D', '5'); text = text.replace('E', '6'); text = text.replace('F', '7'); text = text.replace('G', '8'); text = text.replace('H', '9'); text = text.replace('〜', '-'); text = text.replace('−', '-'); ml.setText(text, "iso-2022-jp"); // 送信日 ml.setSentDate(new Date()); // 送信 Transport.send(ml); } catch (Exception e) { msg = "メール送信エラー<BR>" + e.toString(); } // 送信結果表示 response.setContentType("text/html; charset=MS932"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">"); out.println("<HTML>"); out.println("<HEAD>"); out.println("<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"); out.println("<TITLE>メール送信</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("<P>" + msg + "</P>"); out.println("</BODY>"); out.println("</HTML>"); } } ■JAVA Servlet、JSP 基礎編資料
■JAVA Servlet、JSP + PostgreSQL 編資料
■JAVA Servlet、JSP + Oracle9i 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料