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

Frage Netzwerke

Mitglied: alexdgg

alexdgg (Level 1) - Jetzt verbinden

29.09.2010 um 09:30 Uhr, 2703 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.


Mit freundlichen Grüßen
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.


Mit freundlichen Grüßen
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

Mit freundlichen Grüßen
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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Outlook & Mail
gelöst Office 365 - SMTP - automatisierte Mail versenden - "Gerät freigeben?!" (4)

Frage von KMUlife zum Thema Outlook & Mail ...

E-Mail
Plesk 17 - E-Mail zurückgestellt in Warteschlange (3)

Frage von ZeldaFreak zum Thema E-Mail ...

Exchange Server
Inhalt von Postfächern in Exchange löschen (9)

Frage von m.reeger zum Thema Exchange Server ...

E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...