2016-12-09 4 views
1

Ich möchte eine E-Mail mit 9 spezifischen Bytes im Körper senden:Wie bekomme ich die genauen Bytes?

byte one = (byte) 161; 
byte two = (byte) 1; 
byte three = (byte) 254; 
byte four = (byte) 1; 
byte five = (byte) 255; 
byte six = (byte) 255; 
byte seven = (byte) 255; 
byte eight = (byte) 254; 
byte nein = (byte) 255; 

String unicode = new String(new byte[] { one, two, three, four, five, six, seven, eight, nein }, "windows-1258"); 
emailMessage.setText(unicode); 

Jedesmal, wenn ich diese Bytes weitere 9 Bytes das Ziel erreichen zu senden. Wie kann ich das erreichen?

Empfänger-String-Encoding ist mir egal. Ich bin nicht daran interessiert, wie die Charaktere visuell angezeigt werden. Ich interessiere mich mehr für die Information, den Hexadezimalwert im Charakter.

+1

ich glaube 9 ist neun nicht nein - zur allgemeinen Information –

+0

hast du MSB, LSB, padding überprüft? –

+0

Haben Sie die Empfänger-String-Codierung überprüft? –

Antwort

2

Es gibt eine relativ gute Erklärung here oder Sie können RFC 1341 selbst lesen.

Grundsätzlich sind nur 7-Bit-US-ASCII-Zeichen in einer E-Mail zulässig (nicht codiert). Alles andere (einschließlich Ihrer Binärbytes) muss mit einer Codierung codiert werden. Dies konvertiert Ihre 9 Bytes in mehr als 9 Bytes (abhängig davon, welche Kodierung gewählt wurde).

E-Mail (SMTP) ist kein binäres Protokoll. Sie können Binärdaten per E-Mail senden, aber es ist im Grunde ein Hack.

Verwandte Themen