2010年あけましておめでとうございます。
早速、google app engine で実践した機能を紹介します。
Java Mailです。
web上からメールを送る機能ですが、
google app engine のJava Mail は、基本的に今までJavaMailを使った事が
ある人には、簡単です。
ほとんど、そのまんまだからです。
一点注意が必要なのは、ログインユーザのメールアドレスを必ず、Fromに入れることです。
管理人が送るので、ほとんど大丈夫だと思いますが、
「javax.mail.SendFailedException:
Send failure (javax.mail.MessagingException:
Illegal Arguments (java.lang.IllegalArgumentException:
Unauthorized Sender: Unauthorized sender))」
上記のエラーが出て、驚かされます。
実装ですが、
---------------
import javax.mail.Message.RecipientType;
import javax.mail.internet.*;
import javax.mail.*;
Session session = Session.getDefaultInstance(new Properties());
MimeMessage message = new MimeMessage(session);
message.setRecipients(RecipientType.TO, InternetAddress.parse("kanrinin@gmail.com"));
message.setRecipients(RecipientType.BCC, InternetAddress.parse(aToMail));
//件名
message.setSubject(aSubject, "ISO-2022-JP");
//message.setText(aText, "ISO-2022-JP");
//送信日付を指定
message.setSentDate(new Date());
//本体
MimeMultipart mm = new MimeMultipart("alternative");
//本文
MimeBodyPart mbText = new MimeBodyPart();
mbText.setText(aText,"ISO-2022-JP");
mm.addBodyPart(mbText);
//HTML
String htmlmessage = aText;
MimeBodyPart mbHtml = new MimeBodyPart();
mbHtml.setContent(htmlmessage,"text/html; charset=ISO-2022-JP");
//ボディパートを追加
mm.addBodyPart(mbHtml);
message.setContent(mm);
//送信者
message.setFrom(new InternetAddress("login@gmail.com","管理者","ISO-2022-JP"));
//送信
Transport.send(message);
-----------------------------
BCCに入れて、アドレスを隠しております。
メーリングリストで送りたい場合は、String aToMail = "aa@gmail.com,bb@gmail.com"
というような文字列でメールアドレスを作成すると、複数の人達に同じ内容のメールを送る事が
可能です。