続 Google App Engine / Java 「Mail API」
先日GAEにてメール送信のときに添付ファイルがhtmlやtextで文字化けなどが発生していたので、昔買ったGAE本を読みなおしてみました。
その本にMailAPIもLow Level APIがあると書かれていたので早速Low Level APIで書き直してみました。
すると、期待していたとおりに動作してくれました。
GAEで開発する場合は、やはりLow Level APIを使えということでしょうかね。
メール送信の部分だけですが下記がソースコードです。
文字コードも気にしなくてもJISへうまい具合に自動変換してくれているようです。
/** * Low level API * @param toAddress * @param fromAddress * @param subject * @param body * @param files */ public void sendLowLevelAPI(List<String> toAddress, String fromAddress, String subject, String body, List<FileItem> files) throws IOException{ MailService ms = MailServiceFactory.getMailService(); com.google.appengine.api.mail.MailService.Message message = new com.google.appengine.api.mail.MailService.Message(); message.setSubject(subject); message.setTo(toAddress); message.setSender(fromAddress); message.setTextBody(body); if(files != null && files.size() > 0){ List<Attachment> list = new ArrayList<Attachment>(); for(FileItem item : files){ Attachment at = new Attachment(item.getFileName(), item.getData()); list.add(at); } message.setAttachments(list); } ms.send(message); }