ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの指定日にメールを自動配信するプルグラム

  • mixiチェック
  • このエントリーをはてなブックマークに追加
システム名:会議室予約システム
システム イメージ:下記URLのシステムに指定日にメール自動配信するプログラムを
          追加したものを構築したいと考えています。

http://www.7-days.jp/support/onlinemanual/reserve.html

       
          ?仮予約日の10日前に使用有無の確認メールを自動配信。
           
          ?キャンセル待ち登録に対応し、予約情報削除時に、キャンセル待ち該当者に
           使用有無確認メールを自動配信。

開発言語:java/JSP/php
サーバ:MySQL(DBサーバ)/tomcat(Webサーバ)

問題点/相談内容:下記に示すようなメール送信プログラムのソースを入手しましたが、
         このソースをどのように改良すれば、指定日へのメール自動配信ができるか分かりません。
         
         参考になるプログラムのURLまたは、サンプルコード自体を、
         御教授下さい。


xxxxxxxxxxxxxxxxxxxxxxxxx
 ServletMail.javaは、mail.htmlからの入力を受けて、JavaBeansであるSendMail.javaを呼び出し、
メールの送信を行うサーブレットクラス。

リスト ServletMail.java
package to.msn.wings;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ServletMail extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
// リクエストパラメータの文字エンコーディングを設定
request.setCharacterEncoding("Windows-31J");
// JavaBeansSendMailをインスタンス化
SendMail objMail=new SendMail();
/* SendMailクラスの各パラメータを設定のうえ、メール送信処理を実行
*利用可能なSMTPサーバのホスト名を指定してください */

 objMail.setSmtp("smtp.xxxxx.ne.jp");
objMail.setToAdd(request.getParameter("toAdd"));
objMail.setCcAdd(request.getParameter("ccAdd"));
objMail.setBccAdd(request.getParameter("bccAdd"));
objMail.setFromAdd(request.getParameter("fromAdd"));
objMail.setSubject(request.getParameter("subject"));
objMail.setBody(request.getParameter("body"));
try {
objMail.transform();
} catch (Exception e) {
throw new ServletException(e);
}
// SendMailクラスをリクエスト属性にセット
request.setAttribute("SendMail",objMail);
// 処理をresult.jspに転送
getServletContext().getRequestDispatcher("/result.jsp").
forward(request,response);
}
}

 SendMail.javaは、メール送信アプリケーションのコア部分。
メール情報を保持し、実際のメール送信部分のロジックを定義するJavaBeansです。

リスト SendMail.java
package to.msn.wings;

import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class SendMail {
// 各種パラメータを保存するプライベート変数を定義
private String smtp;
private String toAdd;
private String ccAdd;
private String bccAdd;
private String fromAdd;
private String subject;
private String body;
// 各種プロパティのアクセサメソッド
public String getSmtp() {return smtp;}
public String getToAdd() {return toAdd;}
public String getCcAdd() {return ccAdd;}
public String getBccAdd() {return bccAdd;}
public String getFromAdd(){return fromAdd;}
public String getSubject(){return subject;}
public String getBody() {return body;}
public void setSmtp(String smtp) {this.smtp=smtp;}
public void setToAdd(String toAdd) {this.toAdd=toAdd;}
public void setCcAdd(String ccAdd) {this.ccAdd=ccAdd;}
public void setBccAdd(String bccAdd) {this.bccAdd=bccAdd;}
public void setFromAdd(String fromAdd){this.fromAdd=fromAdd;}
public void setSubject(String subject){this.subject=subject;}
public void setBody(String body) {this.body=body;}
// コンストラクタ
public SendMail(){
this.smtp="smtp.xxxxx.ne.jp";
}
// メール送信処理を行うtransformメソッドの定義
public void transform()
throws UnsupportedEncodingException, MessagingException {
// メール送信に必要なプロパティをセットしたうえで、メールセッションを確立
Properties objPrp=new Properties();
objPrp.put("mail.smtp.host",this.smtp);
objPrp.put("mail.host",this.smtp);
Session objSes=Session.getInstance(objPrp,null);
/* MimeMessageオブジェクトに一連のヘッダ情報をセット
* 件名・本文はISO-2022-JP(JIS)コードに変換 */
MimeMessage objMsg=new MimeMessage(objSes);
objMsg.setRecipients(Message.RecipientType.TO,this.toAdd);
objMsg.setRecipients(Message.RecipientType.CC,this.ccAdd);
objMsg.setRecipients(Message.RecipientType.BCC,this.bccAdd);
InternetAddress objFrm=new InternetAddress(this.fromAdd,"");
objMsg.setFrom(objFrm);
objMsg.setSubject(
MimeUtility.encodeText(this.subject,"ISO-2022-JP","B"));
objMsg.setContent(this.body,"text/plain; charset=ISO-2022-JP");
// メール送信処理
Transport.send(objMsg);
}
}

 result.jspは、送信したメールに関する情報を表示。

リスト result.jsp
<%@ page contentType="text/html;charset=Windows-31J" %>
<jsp:useBean id="SendMail" class="to.msn.wings.SendMail" scope="request" />
<html>
<head>
<title>Webメールアプリケーション(送信結果)</title>
</head>
<body>
<h1>Webメールアプリケーション(送信結果)</h1>
<table border="1">
<tr>
<th align="right" valign="top">To:</th>
<td><jsp:getProperty name="SendMail" property="toAdd" /></td>
</tr><tr>
<th align="right" valign="top">Cc:</th>
<td><jsp:getProperty name="SendMail" property="ccAdd" /></td>
</tr><tr>
<th align="right" valign="top">Bcc:</th>
<td><jsp:getProperty name="SendMail" property="bccAdd" /></td>
</tr><tr>
<th align="right">送信者:</th>
<td><jsp:getProperty name="SendMail" property="fromAdd" /></td>
</tr><tr>
<th align="right">件名:</th>
<td><jsp:getProperty name="SendMail" property="subject" /></td>
</tr><tr>
<th align="right" valign="top">本文:</th>
<td><pre><jsp:getProperty name="SendMail" property="body" />
</pre></td>
</tr>
</table>
</body>
</html>

コメント(0)

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング