Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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-Mail Inhalt ermitteln

Frage Netzwerke

Mitglied: alexdgg

alexdgg (Level 1) - Jetzt verbinden

29.09.2010 um 09:30 Uhr, 2743 Aufrufe, 10 Kommentare

Hallo Leute,

ich habe in Java einen SMTP-Server implementiert für den Empfang von Mail über SMTP.

Das funktioniert auch ales sehr gut. Ich habe nur das Problem, dass ich den eigentlichen Inhalt der Mail nach SMTP(DATA) nicht extrahieren kann, da ich nicht weis wo er beginnt.
Das Ende der Mail ist ja durch "354 Start mail input; end with ." beschrieben. aber wie kann ich eindeutig den Anfang des Inhaltes ermitteln?

Hat jemand Rat für mich?
Mitglied: KowaKowalski
29.09.2010 um 10:41 Uhr
Zitat von alexdgg:
ich habe in Java einen SMTP-Server implementiert für den Empfang von Mail über SMTP.

Hi,

ich habe ja wirklich keine Ahnung von Java.
Aber eventuell stellt sich Dein Java quer weil SMTP eher für das senden von mails in Frage kommt.


mfg
kowa
Bitte warten ..
Mitglied: alexdgg
29.09.2010 um 11:08 Uhr
Aber eventuell stellt sich Dein Java quer weil SMTP eher für das
senden von mails in Frage kommt.


mfg
kowa

SMTP ist das Protokoll mit dem Mail-Server Mails untereinander austauschen. Und zwar senden und empfangen!
Was Clients angeht, die senden nur über SMTP und empfangen über POP3 oder IMAP. Aber kein Mailserver wird über POP3 oder IMAP jemals Mails empfangen, weil dies auch nicht möglich ist.
Bitte warten ..
Mitglied: Connor1980
29.09.2010 um 12:53 Uhr
Hallo,

Zitat von alexdgg:
Aber kein Mailserver wird über POP3 oder IMAP jemals Mails empfangen, weil dies auch nicht möglich ist.

du meintest senden, nicht empfangen

So, um etwas kleinkariert zu sein:
mit POP3 und IMAP nicht empfangen, sondern abgerufen. (Empfangen ist passiv, ich bekomme etwas zugestellt, abrufen aktiv, ich hole ab.)

Grüße
Bitte warten ..
Mitglied: alexdgg
29.09.2010 um 13:11 Uhr
du meintest senden, nicht empfangen >

Wenn ein Mailserver über SMTP Mails sended, dan EMPFÄNGT der andere Mailsserver an den es geht auch über SMTP

Hier die zugehörige RFC0821 Spezifikation zum Mailaustausch zwischen Mailservern

http://james.apache.org/server/rfclist/smtp/rfc0821.txt

Es heist ja auch nicht Simple Mail Sending Protocol sondern Simple Mail Transfer Protocol

mit POP3 und IMAP nicht empfangen, sondern abgerufen. (Empfangen ist passiv, ich bekomme etwas zugestellt, abrufen aktiv, ich hole ab.)

Deswegen habe ich ja geschrieben...
Aber kein Mailserver wird über POP3 oder IMAP jemals Mails empfangen, weil dies auch nicht möglich ist.


Das hilft mir alles aber mit meinem Problem nicht weiter. ;(
Bitte warten ..
Mitglied: filippg
29.09.2010 um 19:47 Uhr
Hallo,

verstehe ich nicht.
Der Client sendet DATA, dein Server als Antwort daraufhin 354. Und genau dann fängt die Mail an.
Erst kommen die Header, dann eine Leerzeile, dann der Body (vielleicht meinst du das mit "eigentlichem Inhalt"). Irgendwann kommt eine Zeile, die nur einen . enthält, dann ist die Mail vorbei (bzw. schon am Ende der vorhergehenden Zeile). Aus einer Mail mit Attachments o.ä. den Text herauszufiltern ist nicht ganz trivial, dann müsstest du dich mal mit MIME auseinander setzen.

Gruß

Filipp
Bitte warten ..
Mitglied: dog
29.09.2010 um 21:36 Uhr
Aus einer Mail mit Attachments o.ä. den Text herauszufiltern ist nicht ganz trivial, dann müsstest du dich mal mit MIME auseinander setzen.

Was aber ein MTA gar nicht braucht.
Der Code ist ja ziemlich trivial:

01.
<?php 
02.
 
03.
	function read_mail(&$con
04.
05.
		$buf = ''
06.
		while(($line = fgets($con)) != '.') { 
07.
			$buf .= $line
08.
09.
		return $buf
10.
11.
 
12.
	//... verbindungsaufbau 
13.
	 
14.
	if(trim(fgets($con)) == 'DATA'
15.
		$mail = read_mail($con); 
16.
		 
17.
	//... abhandlung 
18.
 
19.
?>
Natürlich ist das so nicht praxistauglich
Bitte warten ..
Mitglied: alexdgg
30.09.2010 um 09:04 Uhr
Zitat von filippg:
Der Client sendet DATA, dein Server als Antwort daraufhin 354. Und genau dann fängt die Mail an.
Erst kommen die Header, dann eine Leerzeile, dann der Body (vielleicht meinst du das mit "eigentlichem Inhalt").

Das Problem ist, dass von verschiedenen Clients verschiedene Header kommen (Format).

Bsp1:

From: test1@test.de
Subject: Testinhalt
To: test2@test.de
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8


Testinhalt
.

Bsp2:

Message-ID: <F83ACCA76B054072AFF0BAB6D26AB8A0@test.de>
From: "test" <test1@test.de>
To: <test2@test.de>
Subject: Test
Date: Thu, 30 Sep 2010 09:02:21 +0200
MIME-Version: 1.0
Content-Type: text/plain;

format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.5843
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

Testinhalt
.

Da ich den eigentlichen Inhalt (Text) als SMS senden will würde ich gerne den Header komplett entfernen. Mit dem ersten Leerzeichen haut aber auch nicht hin. Siehe Bsp2 Da kommen 2 Zeilen mit Leerzeichen und erst nach dem zweiten geht der Text los.

Kann ich über das Protokoll nicht irgendwie selber einen Seperator angeben?
Bitte warten ..
Mitglied: KowaKowalski
30.09.2010 um 19:05 Uhr
Hi Alex,

ginge es denn nicht das Du im ersten Schritt feststellst welcher Client verwendet wird und dann erst die Behandlung für den Text losgeht?

Also erkenne Outlook Express als Client. Mailtext ab zeile 17

Erkenne Thunderbird als Client. Mailtext ab Zeile 9

und so weiter

Wobei Du dann natürlich ständig erweitern müsstest sowie sich ein "neuer" Mailclient verbreitet/durchsetzt. Und es müssten schon im Vorfeld alle verbreiteten Clienten in Diener Liste stehen.


OK OK, iss wohl nicht praktikabel

mfg
kowa
Bitte warten ..
Mitglied: dog
30.09.2010 um 21:19 Uhr
Das sind ja erstmal zwei Paar Schuhe.
Im ersten Schritt musst du erstmal den DATA-Block empfangen.
Zu dem Zeitpunkt ist ja erstmal völlig egal, was da drin steht.

Im zweiten Schritt kannst du dich dann an den Inhalt der Mail machen und da wurde das Stichwort schon gesagt: MIME
Bitte warten ..
Mitglied: alexdgg
01.10.2010 um 09:21 Uhr
Zitat von dog:
Im zweiten Schritt kannst du dich dann an den Inhalt der Mail machen und da wurde das Stichwort schon gesagt: MIME

Es muss doch auch irgendwann mal etwas einfach gehen... Jetzt muss ich mich auch noch mit dem Misst beschäftigen ;(
Bitte warten ..
Ähnliche Inhalte
Exchange Server
Exchange nicht alle mails kommen rein 550 smtp (2)

Frage von windows10 zum Thema Exchange Server ...

E-Mail
gelöst Eigenes SMTP Relay oder E-Mail Anbieter ohne SSL TLS? (12)

Frage von themast zum Thema E-Mail ...

Microsoft Office
gelöst VBA - aktuelle Kalenderwoche ermitteln (3)

Frage von Ghost108 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...