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" );