Mercurial Hosting > luan
diff mail/src/luan/modules/mail/SmtpCon.java @ 273:073044e3ac03
fix mmake.sh and multipart mail
git-svn-id: https://luan-java.googlecode.com/svn/trunk@274 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 31 Oct 2014 18:44:11 +0000 |
parents | b2c20fdcf42a |
children | ae7ae2755b48 |
line wrap: on
line diff
--- a/mail/src/luan/modules/mail/SmtpCon.java Fri Oct 31 04:50:24 2014 +0000 +++ b/mail/src/luan/modules/mail/SmtpCon.java Fri Oct 31 18:44:11 2014 +0000 @@ -1,6 +1,7 @@ package luan.modules.mail; import java.util.Map; +import java.util.HashMap; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; @@ -105,19 +106,23 @@ if( body instanceof String ) { msg.setText((String)body); } else if( body instanceof LuanTable ) { + LuanTable bodyTbl = (LuanTable)body; + Map<Object,Object> map = new HashMap<Object,Object>(bodyTbl.asMap()); MimeMultipart mp = new MimeMultipart("alternative"); - for( Map.Entry<Object,Object> entry : (LuanTable)body ) { - String key = (String)entry.getKey(); - String val = (String)entry.getValue(); + String text = (String)map.remove("text"); + if( text != null ) { MimeBodyPart part = new MimeBodyPart(); - if( key.equals("text") ) { - part.setText(val); - } else if( key.equals("html") ) { - part.setContent(val,"text/html"); - } else - throw luan.exception( "invalid body type: " + key ); + part.setText(text); mp.addBodyPart(part); } + String html = (String)map.remove("html"); + if( html != null ) { + MimeBodyPart part = new MimeBodyPart(); + part.setContent(html,"text/html"); + mp.addBodyPart(part); + } + if( !map.isEmpty() ) + throw luan.exception( "invalid body types: " + map ); msg.setContent(mp); } else throw luan.exception( "parameter 'body' is must be a string or table" );