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"
というような文字列でメールアドレスを作成すると、複数の人達に同じ内容のメールを送る事が
可能です。
0 件のコメント:
コメントを投稿