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, 1582 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 ..
Ähnliche Inhalte
E-Mail
Exchange mit Postfix als SMTP Relay - Neuaufbau (8)

Frage von staybb zum Thema E-Mail ...

Exchange Server
Exchange 2010 SMART Host SMTP Relay Probleme (6)

Frage von dawdad zum Thema Exchange Server ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...

Server-Hardware
gelöst SPP von HP Abwärtskompatibel? (14)

Frage von fireskyer zum Thema Server-Hardware ...