投稿日:2005年10月17日 作成鷹の巣

No.19740 JavaMailのメール本文中にデータベースで持っている値を記述したい。



JavaMailのメール本文中にデータベースで持っている値を記述したい。

No.19740 投稿時間:2005年10月17日(Mon) 20:09 投稿者名:bianconero URL:

どなたか教えてください。
JavaMailを使用して、メール送信をすることはできました。
しかし、メール本文中にデータベースで持っている値を記述したいのですが、記述方法がわかりません。
たとえば、こんな感じのメール本文を作成したいのです。
あなたのメールアドレスは、"mail(ここがデータベースに登録されている情報)"です。
このmail部分をどうしたら、いいのかわかりません。

よろしくお願いします。


データベースの値自体はとれているのでしょうか?

No.19762 投稿時間:2005年10月20日(Thu) 15:22 投稿者名:仕事人 URL:

データベースの値自体はとれているのでしょうか?
セットの仕方がわからないだけ。。。と思っていいですか?
だとしたら・・・。

private void sendMailTo() throws BaseException{

String smtphost = "ここにSMTPホスト名";
String from = "ここに送信元アドレス";
String fromname = "ここに送信元表示名";
String mailto = "ここに送信先アドレス";
String title = "ここにタイトル";

//String mailadr = データベースから取得した値をセット;
//例としてmailadr=test@test.com とします。
String mailadr = "test@test.com";

// "をメール本文として使用する方法がわからなかったので、
//<>を使用しました。
//あなたのメールアドレスは、<test@test.com>です。
String body = "あなたのメールアドレスは、<" + mailadr + ">です。";

try{
//メール送信処理
MailSender.send(smtphost,from,fromname,mailto,title,body);
}catch ( BaseException bex ){
throw bex;
}
}

public class MailSender{

public static void send (
String smtphost,
String from, // 送信元メールアドレス
String fromname, // 送信元表示名
String to, // 宛先メールアドレス
String subject, // メール題名
String body) // メール本文
throws BaseException{


try {
// メール送信準備
Properties props = new Properties();
props.put("mail.smtp.host", smtphost);
//Session session = Session.getDefaultInstance(props, null);
Session session = Session.getInstance(props, null);


// メール作成
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom(new InternetAddress(from,fromname,"ISO-2022-JP"));
mimeMessage.setReplyTo(InternetAddress.parse( from, false ));
mimeMessage.setSender(new InternetAddress(from,fromname,"ISO-2022-JP"));
mimeMessage.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(to,false));
mimeMessage.setSubject(subject, "ISO-2022-JP");
mimeMessage.setHeader("Content-Type","text/plain");
mimeMessage.setText(body, "ISO-2022-JP");
mimeMessage.setSentDate(new Date());

// 送信
Transport.send(mimeMessage);

} catch (MessagingException mex) {
log.debug("MessagingException(MailSender.send)" + mex);
mex.printStackTrace();
BaseException bex = new BaseException();
bex.setKey("error.exception"); //KEYセット
bex.setErrorMessage(mex.toString()); //エラー内容セット
throw bex;
} catch(java.io.UnsupportedEncodingException uex){
log.debug("AddressException(MailSender.send)" + uex);
uex.printStackTrace();
BaseException bex = new BaseException();
bex.setKey("error.exception"); //KEYセット
bex.setErrorMessage(uex.toString()); //エラー内容セット
throw bex;
}
}
}


うまく実行できました。

No.19771 投稿時間:2005年10月24日(Mon) 12:32 投稿者名:初心者 URL:

> データベースの値自体はとれているのでしょうか?
> セットの仕方がわからないだけ。。。と思っていいですか?
> だとしたら・・・。
>
> private void sendMailTo() throws BaseException{
>
> String smtphost = "ここにSMTPホスト名";
> String from = "ここに送信元アドレス";
> String fromname = "ここに送信元表示名";
> String mailto = "ここに送信先アドレス";
> String title = "ここにタイトル";
>
> //String mailadr = データベースから取得した値をセット;
> //例としてmailadr=test@test.com とします。
> String mailadr = "test@test.com";
>
> // "をメール本文として使用する方法がわからなかったので、
> //<>を使用しました。
> //あなたのメールアドレスは、<test@test.com>です。
> String body = "あなたのメールアドレスは、<" + mailadr + ">です。";
>
> try{
> //メール送信処理
> MailSender.send(smtphost,from,fromname,mailto,title,body);
> }catch ( BaseException bex ){
> throw bex;
> }
> }
>
> public class MailSender{
>
> public static void send (
> String smtphost,
> String from, // 送信元メールアドレス
> String fromname, // 送信元表示名
> String to, // 宛先メールアドレス
> String subject, // メール題名
> String body) // メール本文
> throws BaseException{
>
>
> try {
> // メール送信準備
> Properties props = new Properties();
> props.put("mail.smtp.host", smtphost);
> //Session session = Session.getDefaultInstance(props, null);
> Session session = Session.getInstance(props, null);
>
>
> // メール作成
> MimeMessage mimeMessage = new MimeMessage(session);
> mimeMessage.setFrom(new InternetAddress(from,fromname,"ISO-2022-JP"));
> mimeMessage.setReplyTo(InternetAddress.parse( from, false ));
> mimeMessage.setSender(new InternetAddress(from,fromname,"ISO-2022-JP"));
> mimeMessage.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(to,false));
> mimeMessage.setSubject(subject, "ISO-2022-JP");
> mimeMessage.setHeader("Content-Type","text/plain");
> mimeMessage.setText(body, "ISO-2022-JP");
> mimeMessage.setSentDate(new Date());
>
> // 送信
> Transport.send(mimeMessage);
>
> } catch (MessagingException mex) {
> log.debug("MessagingException(MailSender.send)" + mex);
> mex.printStackTrace();
> BaseException bex = new BaseException();
> bex.setKey("error.exception"); //KEYセット
> bex.setErrorMessage(mex.toString()); //エラー内容セット
> throw bex;
> } catch(java.io.UnsupportedEncodingException uex){
> log.debug("AddressException(MailSender.send)" + uex);
> uex.printStackTrace();
> BaseException bex = new BaseException();
> bex.setKey("error.exception"); //KEYセット
> bex.setErrorMessage(uex.toString()); //エラー内容セット
> throw bex;
> }
> }
> }
ありがとうございました。
テストした結果、うまく実行できました。


目次掲示板過去ログ目次▲頁先頭