smtp/mime
-
super danke jungs... damit kann ich erstmal ne weile experimentiern
-
noch mehr fragen
-outlook verschickt nunmal 8bit und binary und da mein client auch outlook mails lesen können will wüsst ich gern wie ich mit den daten im vergleich zu 7bit umgehn soll
-was mach ich bei base64 wenn sich die gesamtanzahl der bytes nich durch 3 teilen lässt
-woher weiss ich beim decode von quoted-printable, welche zeichen encoded wurden und welche ned
@konstantin auf das tut freu ich mich jetzt schon
wenn du fertig bist schick mirs bitte als pdf an ez@rebels.com
wenns keine pdf is mach ich gern die konvertierung
-
Sovok schrieb:
-outlook verschickt nunmal 8bit und binary und da mein client auch outlook mails lesen können will wüsst ich gern wie ich mit den daten im vergleich zu 7bit umgehn soll
Das müsste eigentlich egal sein. Zeig die Daten einfach so an, wie du sie bekommst.
Sovok schrieb:
-was mach ich bei base64 wenn sich die gesamtanzahl der bytes nich durch 3 teilen lässt
-woher weiss ich beim decode von quoted-printable, welche zeichen encoded wurden und welche ned
Wie schon geschrieben, kann man das der RFC entnehmen. Da gibt es zu beiden ein paar Rules. Wenn du in englisch nicht so fit bist, kann ich dir das ja mal kurz zusammmenfassen. Da komm ich aber erst am Freitag zu. Morgen hab ich keine Zeit und heute Abend habe ich da keine Lust mehr zu.
Sovok schrieb:
@konstantin auf das tut freu ich mich jetzt schon
wenn du fertig bist schick mirs bitte als pdf an ez@rebels.com
wenns keine pdf is mach ich gern die konvertierungDa ist eigentlich in HTML geplant, um das auf meiner Website zu veröffentlichen. Aber wenn ich fertig bin, können wir da mal drüber reden...
-
ok ich zieh mir erstmal die rfcs rein
btw. was is ein octet?
-
Ein Byte (8 Bit)
-
ach octal->acht... argh warum sagen die ned byte dazu ?
-
weil ein byte nicht ein octet groß sein muss.
(siehe wieder 7Bit vs 8Bit Problematik :))
-
nagut hast recht
gibts irgendwo n online glossar mit englischen programmier fachwörtern?
-
mit folgenden Links solltest du ohne Probleme die Texte lesen können:
http://foldoc.doc.ic.ac.uk/foldoc/index.html
http://dict.leo.org/
http://de.wikipedia.org/wiki/Hauptseite
-
so base64 encoding is fertig
outlook frissts.. optimierungstips willkommen-gibts eigentlich auch argumente die dagegen sprechen alles als base64 oder qprintable zu verschicken?
-was bedeuten eigentlich die ganzen iso varianten -1,-2,-3...?
QString XPutMail::ToBase64(QString sData) { PUT_STATUS("encoding mailcontent to base64") PUT_STRING(sData) QString sResult; int i=0; unsigned char* p8BitCurrent=0; unsigned char* p7BitCurrent=0; const char* pDataBegin=sData.data(); long lNumPackage=sData.length()/PACKAGE_LEN_8BIT; long lClosingPackage=(sData.length() % PACKAGE_LEN_8BIT == 0)?0:1; lNumPackage+=lClosingPackage; long lNumEncodedBytes=lNumPackage*PACKAGE_LEN_7BIT; unsigned char *s7Bit=new unsigned char [lNumEncodedBytes+1]; memset(s7Bit,'\0',lNumEncodedBytes+1); for(i=0;i< ((lClosingPackage)?lNumPackage-1:lNumPackage) ;i++) { p8BitCurrent=(unsigned char*)pDataBegin+(i*PACKAGE_LEN_8BIT); p7BitCurrent=s7Bit+(i*PACKAGE_LEN_7BIT); p7BitCurrent[0]=(p8BitCurrent[0] & 0xFC)>>2; p7BitCurrent[1]=(((p8BitCurrent[0] & 0x3)<<4) | ((p8BitCurrent[1] & 0xF0)>>4)); p7BitCurrent[2]=(((p8BitCurrent[1] & 0xF)<<2) | ((p8BitCurrent[2] & 0xC0)>>6)); p7BitCurrent[3]=((p8BitCurrent[2] & 0x3F)); } if(lClosingPackage) { p8BitCurrent=(unsigned char*)pDataBegin+((lNumPackage-1)*PACKAGE_LEN_8BIT); p7BitCurrent=s7Bit+((lNumPackage-1)*PACKAGE_LEN_7BIT); switch(sData.length() % PACKAGE_LEN_8BIT) { case 1://8bit left { p7BitCurrent[0]=(p8BitCurrent[0] & 0xFC)>>2; p7BitCurrent[1]=(p8BitCurrent[0] & 0x3)<<4; p7BitCurrent[2]=BASE64_CLOSING_CHAR; } break; case 2://16bit left { p7BitCurrent[0]=(p8BitCurrent[0] & 0xFC)>>2; p7BitCurrent[1]=(((p8BitCurrent[0] & 0x3)<<4) | ((p8BitCurrent[1] & 0xF0)>>4)); p7BitCurrent[2]=(p8BitCurrent[1] & 0xF)<<2; } break; default: PUT_ERROR("fatal encoding error") assert(0!=0); break; } p7BitCurrent[3]=BASE64_CLOSING_CHAR; } for(i=0;i<lNumEncodedBytes;i++) { assert(s7Bit[i]<LEN_BASE64_CHARS); s7Bit[i]=cuteMailWindow::Base64Chars[s7Bit[i]]; } sResult=(char*)s7Bit; delete [] s7Bit; PUT_STATUS("encoding done") PUT_STRING(sResult) return sResult; }
-
Sovok schrieb:
-gibts eigentlich auch argumente die dagegen sprechen alles als base64 oder qprintable zu verschicken?
Na ja, es ist nicht verboten. Aber wenn man sollte wichtige Binär-Daten nicht mit QP verschicken, da die evtl. etwas anders dekodiert werden könnten. Für das Auge nich ungedingt sichtbar, aber der Hex-Code unterscheidet sich dann ein wenig.
Lesbaren Text mit Base64 zu kodieren hat den Nachteil, dass 1. der Text evtl. länger wird, als mit QP und 2. Kann man den Text kodiert nicht mehr lesen, was mit QP aber noch möglich ist.
-
die qp beschreibung im rfc find ich arg knapp
kennst du da noch ne etwas ausführlichere?
-
Was brauchst dennn da ausführlicher? In der RFC ist doch alles gesagt. Anonsten google mal danach. Da lässt sich sicherlich was finden.