Browse Source

fix DATA: period at beginning of line

Pascal Peridont 17 years ago
parent
commit
cdb7a05b52
2 changed files with 24 additions and 7 deletions
  1. 13 4
      std/mtwin/mail/Browser.hx
  2. 11 3
      std/mtwin/mail/Smtp.hx

+ 13 - 4
std/mtwin/mail/Browser.hx

@@ -57,8 +57,8 @@ class Browser extends MetaPart<Browser> {
 		return o;
 	} 
 
-	public function getMainPartCharset( cs : String ){
-		var r = getMainPart();
+	public function getMainPartCharset( cs : String, ?preferHtml : Bool ){
+		var r = getMainPart(preferHtml);
 		if( cs != r.charset ){
 			var cslc = cs.toLowerCase();
 			var charsetlc = r.charset.toLowerCase();
@@ -122,13 +122,22 @@ class Browser extends MetaPart<Browser> {
 		return null;
 	}
 
-	public function listAttachment( ?level : Int ){
+	public function listAttachment( ?level : Int, ?cs : String ){
+		if( cs == null )
+			cs = charset;
+		cs = cs.toLowerCase();
 		if( level == null ) level = 0;
 		var l = listAttachmentObjects( level );
 		var r = new List();
 		for( v in l ){
+			var name = v.name;
+			if( cs != "utf-8" && v.charset.toLowerCase() == "utf-8" ){
+				name =  Utf8.decode( name );
+			}else if( v.charset.toLowerCase() != "utf-8" && cs == "utf-8" ){
+				name =  Utf8.encode( name );
+			}
 			r.add({
-				name: v.name, 
+				name: name, 
 				id: v.id, 
 				type: v.contentType
 			});

+ 11 - 3
std/mtwin/mail/Smtp.hx

@@ -124,10 +124,18 @@ class Smtp {
 			throw SmtpDataError(ret);
 		}
 
-		if( data.substr(data.length -2,2) != "\r\n" ) 
-			data += "\r\n";
+		var a = ~/\r?\n/g.split(data);
+		var lastEmpty = false;
+		for( l in a ){
+			if( l.substr(0,1) == "." )
+				l = "."+l;
+			cnx.write(l);
+			cnx.write("\r\n");
+		}
+		if( a[a.length-1] != "" ) 
+			cnx.write("\r\n");
+		cnx.write( ".\r\n" );
 
-		cnx.write( data + ".\r\n" );
 		ret = StringTools.trim(cnx.input.readLine());
 		if( ret.substr(0,3) != "250" ){
 			cnx.close();