Ich arbeite an einem Server, der viele Perl-Bibliotheken fehlt, so dass ich mit MIME :: Lite bleiben. Ja, ich sollte etwas anderes benutzen, aber es liegt nicht unter meiner Kontrolle.Perl MIME :: Lite verschachtelte Grenzen
Insgesamt muss das E-Mail-Paket "multipart/mixed" sein. Es wird die Klartext-Version, HTML-Version und einen Anhang haben. Das Problem ist, es zeigt BEIDE Text und HTML-Version im E-Mail-Text.
Ich möchte immer noch "multipart/alternative" unterstützen, so dass es entweder Klartext oder HTML zeigt. Da ich jedoch einen Anhang benötige, sollte die gesamte E-Mail "multipart/mixed" mit einem inneren Grenzabschnitt mit "multipart/alternativ" für text/html-Versionen sein.
Obwohl ich hatte es funktioniert, aber es fällt die Anlage wegen der gesamten E-Mail-Paket wurde "multipart/alternative". Einige E-Mails in meinem Posteingang überprüfen, und ich bemerkte, dass Sie zuerst "gemischt" haben können, dann haben Sie innen "Alternative". Wie ein div in einem div :)
Hier ist mein aktueller Code Schnipsel (schauen Sie bitte für meine Kommentare Definieren der Grenze):
my $type = 'multipart/mixed';
sub sendMail {
my($from, $to, $subject, $messageHtml, $messageText, $type, %attachment) = @_;
my $msg = MIME::Lite->new(
From => $from,
To => $to,
Subject => $subject,
Type => $type, # multipart/mixed
);
# -- start new boundary and multipart/alternative
if ($messageText ne '') {
$msg->attach(
Type => 'text/plain; charset=UTF-8',
Encoding => 'quoted-printable',
Data => $messageText,
);
}
if ($messageHtml ne '') {
$msg->attach(
Type => 'text/html; charset=UTF-8',
Encoding => 'quoted-printable',
Data => $messageHtml,
);
}
# -- end new boundary
if (%attachment) {
$msg->attach(
Type => $attachment{"type"},
Encoding => 'base64',
Path => $attachment{"path"},
Filename => $attachment{"filename"},
Disposition => 'attachment'
);
}
if ($debugmode) {
my $result = '';
$msg->print($result);
print $result;
exit;
}
if ($msg->send) {
return 1;
}
return 0;
}
ich den Code ändern, würde zu überprüfen, ob HTML und Nur-Text war bestanden. Ich bin mir bewusst, dass ich keine Alternative brauche, wenn nur 1 von ihnen verwendet wird.
Auch hier muss ich die Klartext und HTML-Abschnitte, innerhalb ihrer eigenen Grenze als „multipart/alternative“
Hat gut funktioniert, danke. Diese Methode sollte in ihren Dokumenten sein :) Sie sagen jedoch, dass Sie eine andere Bibliothek verwenden sollten. Leider hatte ich keine Wahl. Vielen Dank für Ihre schnelle und prägnante Antwort. –
@WadeShuler: eigentlich habe ich gerade die docs verfolgt. Der wichtige Teil der Dokumentation besteht darin, dass "attach" den neuen Teil zurückgibt und alternativ, dass Sie ein vollständiges Teil erstellen und anhängen können. Aber ein Beispiel für diesen komplexeren, aber typischen Anwendungsfall wäre in der Dokumentation nützlich. –