自己紹介

自分の写真
最近、iphoneアプリをリリースしました。
UxU
無料アプリですので、是非遊んで下さい。 第二弾アプリ:工場夜景写真集 今後も色々なアプリをリリースしていく予定です。
次は、コスプレ or 漫画 or 騎乗日記

2010年1月1日金曜日

java mail

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