Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SMTP und der Punkt

Frage Netzwerke Netzwerkprotokolle

Mitglied: StefanKittel

StefanKittel (Level 4) - Jetzt verbinden

21.03.2014, aktualisiert 22:37 Uhr, 1565 Aufrufe, 5 Kommentare

Hallo zusammen,

ich beschäftige mich gerade mal wieder mit dem SMTP-Protokoll und bin dabei auf ein Prinzip-Problem gestoßen.
Ich hatte immer wieder Emails denen einfach Teile fehlte.

Für alle die nicht fließend SMTP sprechen hier ein einfaches Beispiel.
(Quelle:http://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol)
01.
  
02.
220 service ready 	Server meldet sich bereit 
03.
HELO foobar.example.net 		Client nennt seinen Namen 
04.
250 OK 	Server bestätigt 
05.
MAIL FROM:<sender@example.org> 		Client nennt Absenderadresse 
06.
250 OK 	Server bestätigt 
07.
RCPT TO:<receiver@example.com> 		Client nennt Empfängeradresse 
08.
250 OK 	Server bestätigt 
09.
DATA 		Client kündigt Inhalt der E-Mail an 
10.
354 start mail input 	Server bereit für diesen längeren Vorgang 
11.
From: <sender@example.org> 
12.
To: <receiver@example.com> 
13.
Subject: Testmail 
14.
Date: Thu, 26 Oct 2006 13:10:50 +0200 
15.
 
16.
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. 
17.
18.
250 OK 	Server bestätigt und übernimmt die Verantwortung für die Nachricht 
19.
QUIT 		Client fordert Verbindungstrennung an 
20.
221 closing channel 	Server kündigt Trennung an


Der Client beendet seine Eingabe mit "<CR><LF>.<CR><LF>". Also eine neue Zeile in der nur ein Punkt steht.
Wenn dies in der Mitte einer Mail vorkommt geht der SMTP-Server davon aus, dass der Text nun zu Ende ist und interpretiert den Rest als Befehl.
Einen Befehl den es nicht gibt.

Also darf diese Zeichenfolge in einer Mail nicht vorkommen.

Ich habe eben mit einem Tool das Postfach meiner Frau durchgeschaut und dabei über 200 Mails gefunden wo dies vorkommt.
Zum Beispiel fast alle Mails von Amazon.

01.
  
02.
mily: Arial,Helvetica,Sans-Serif; font-size: 10px; color: #bfbfbf">hier</a>= 
03.
04.
<br /><br />


Was macht man mit solchen Mails damit die zugestellt werden können?
a) Die Zeichenkette verändern. Dann wird eventuell aber auch die Mail oder ein Anhang beschädigt.
b) Dem Server sagen, dass er dies ignorieren soll. Aber wie?

Weiß Jemand was zu diesem Thema?

Viele Grüße

Stefan
Mitglied: colinardo
21.03.2014, aktualisiert 22.03.2014
Hallo Stefan,
soweit ich informiert bin, prüfen die Mailclients bzw. Server normalerweise vor der Übertragung ob im Body der Mail ein einzelner Punkt ganz am Anfang einer Zeile steht und fügen falls nötig einen zweiten Punkt hinzu damit es zu keinen Problemen kommt. Falls auf einen Punkt am Anfang der Zeile weitere Zeichen folgen, wird der Punkt entfernt.
Es gab vor einiger Zeit immer mal wieder Probleme mit SMTP Bibliotheken die dies nicht korrekt umgesetzt haben, so dass es zu diesem Phänomen kommt.
Da gab es auch mal einen Hotfix für den EX2003 der dieses Problem hatte: http://support.microsoft.com/?kbid=891862

Wenn, dann betrifft das nur den Nur-Text Part einer Mail da andere Formate meistens Base64 oder quoted printable kodiert übertragen werden und deshalb keine Punkte beinhalten.

Grüße Uwe
Bitte warten ..
Mitglied: Lochkartenstanzer
22.03.2014, aktualisiert um 08:07 Uhr
ich beschäftige mich gerade mal wieder mit dem SMTP-Protokoll und bin dabei auf ein Prinzip-Problem gestoßen.

Und Du meinst, Du wärst Der erste, dem das aufgefallen ist? Wenn Du den RFC 5321: "Simple Mail Transfer Protocol" statt des Wikipedia-Artikels liest, weißt Du, daß da andere dieses Problem schon bedacht haben. Abschnitt 4.5.2 beschreibt, was da zu tun ist.

lks

PS: Schon im Ur-RFC821: "SIMPLE MAIL TRANSFER PROTOCOL" von Jonathan B. Postel
wurde das 1982 schon beschrieben.
Bitte warten ..
Mitglied: dog
22.03.2014 um 11:27 Uhr
Um es nicht zu spannend zu machen: Der "." wird escapt indem via SMTP ".." gesendet wird.
Bitte warten ..
Mitglied: Lochkartenstanzer
22.03.2014 um 11:34 Uhr
Zitat von dog:

Um es nicht zu spannend zu machen: Der "." wird escapt indem via SMTP ".." gesendet wird.

Und der Empfänger weiß, daß wenn er eine zeile mit nur einem einzigen Punkt enthält, die datenübertragung zu Ende ist und entfent ansonsten vonjeder Zeile die mit einem Punkt anfängt den ersten Punkt.

lks
Bitte warten ..
Mitglied: Lochkartenstanzer
22.03.2014 um 11:38 Uhr
Noch Ergänzend dazu:

wenn man wie ich gerne auch Mail per telnet oder netcat verschickt. soltle man natürlich dafür sorgen, daß dieses escapen manuell passiert., indem man z.B. per sed die Punkte am Anfang verdoppelt.

lks
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
E-Mail
gelöst Falsche SMTP Server IP Adresse (6)

Frage von laster zum Thema E-Mail ...

Exchange Server
Exchange nicht alle mails kommen rein 550 smtp (2)

Frage von windows10 zum Thema Exchange Server ...

Entwicklung
Versteckte .(Punkt)Dateien löschen (3)

Frage von DarkJM zum Thema Entwicklung ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...