![]() |
|< 1 2 >| | ![]() |
16 Einträge, 2 Seiten |
QuoteDu meinst indem ich einer Mail keinen Body-Text mitgebe? Klar, kann ja auch Mails ohne Daten raushauen. In dem Fall hab ich halt nen leeren Body, den ich auch verwerten würde zusammen mit den restlichen Daten.Und eine Mail muss ueberhaupt keinen "textuellen Inhalt" haben, wenn du das meinst. Ich kann auch eine MIME-Mail verschicken, die nur aus einem Binaeranteil besteht.
QuoteOder ich fange leere Felder vorher ab. Trotz allem möchte ich sie aber auslesen aus der Mail.
Im großen ganzen geht es darum, dass ich ein Script schreiben will, welches mir die Daten einer eMail, die an bestimmte Empfänger geschickt werden, ausliest und in eine Datenbank schreibt.
QuoteQuoteBleibt die Frage wie sowas zustande kommt (Aufteilung der Mail in mehrere Entity-Parts und die unterschiedlichen Zeichensätze)? Und es bleibt die Frage wie wahrscheinlich sowas ist.Ein anderes Problem ist, dass durchaus ein einzelner Mailtext aus mehreren MIME-Parts bestehen kann! Mutt macht sowas gerne, wenn unterschiedliche Teile unterschiedliche Zeichensaetze benoetigen. Da kann es also sein, dass ein MIME-Part US-ASCII ist, der naechste dann ISO-8859-1 und der wiederum naechste ISO-8859-15. Alle hintereinander gehaengt bilden den Text der Mail. Damit kommt nichtmal jeder User Agent klar.
QuoteIch will ja keinen eMail-User-Agent proggen und da eigentlich keinen riesigen Aufwand reinstecken.
QuoteQuoteKlar, daran mache ich ja aus, ob ich es verwerten kann oder nicht.Ein Kriterium fuer die Auswahl ist natuerlich, was Content-type und Content-Disposition sagen. Wenn die Content-Disposition "attachment" ist, oder der Content-type etwas anderes als "text/*", dann gehoert es wohl nicht zum textuellen Inhalt der Mail.
QuoteHat jede Mail einen text/plain Part? Ist das immer der erste?
QuoteWas ist der Unterschied zwischen "effective_type", "content-type" und "mime_type".
1
2
3
4
5
6
7
8
9
10
11
12
my $entity = $parser->parse_open("mail.dat")
if ($entity->parts() > 0)
{
print "IF-ZWEIG\n";
@parts = $entity->parts();
}
else
{
print "ELSE-ZWEIG\n";
push @parts, $entity unless @parts;
}
Quote@parts = $entity->parts();
Quotepush @parts, $entity unless @parts;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my @werte = qw(
audio/basic
image/bmp
image/gif
image/jpeg
image/png
image/tiff
video/mpeg
video/quicktime
);
foreach $werte (@werte)
{
if ($string eq $werte || $string =~ /^application\/(.*)/)
{
...
if (grep {$_ eq $string} @werte) {
![]() |
|< 1 2 >| | ![]() |
16 Einträge, 2 Seiten |