Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision e3159b22

Von Moritz Bunkus vor mehr als 7 Jahren hinzugefügt

  • ID e3159b228e66bd345e33efcda84af064217f4eb9
  • Vorgänger 117332fc
  • Nachfolger 018cbc88

Task-Server & FailedBackgroundJobsReport: Encoding des E-Mail-Bodys gefixt

SL::Mailer erwartet die Einträge in Perls internem Encoding. Daher ist
jegliche Verwendung von Encode::decode(…) falsch.

Zusätzlich muss aber dem Template-Toolkit mitegeteilt werden, dass die
E-Mail-Vorlagen-Datei bereits UTF-8 encodiert wird. Nur dann wandelt
Template die beim Lesen ins interne Encoding um.

Damit spielt nun alles richtig zusammen:

• Daten aus der DB werden vom DB-Treiber in Perls internes Encoding
gewandelt.
• Die E-Mail-Vorlagendatei wird von Template in Perls internes
Encoding gewandelt.
• Beim Verschicken wird Perls internes Encoding von Net::SMTP (oder
welchem Modul auch letztlich genutzt wird) aus Perls internem
Encoding in das Wire-Format gewandelt.

Behebt #257.

Unterschiede anzeigen:

SL/BackgroundJob/FailedBackgroundJobsReport.pm
39 39
    EVAL_PERL   => 0,
40 40
    ABSOLUTE    => 1,
41 41
    CACHE_SIZE  => 0,
42
    ENCODING    => 'utf8',
42 43
  }) || die("Could not create Template instance");
43 44

  
44 45
  my $file_name = $self->data->{template} || 'templates/webpages/failed_background_jobs_report/email.txt';
45 46
  my $body;
46 47
  $template->process($file_name, { SELF => $self }, \$body);
47
  $body = Encode::decode('utf-8', $body);
48 48

  
49 49
  Mailer->new(
50 50
    from         => $self->data->{from},

Auch abrufbar als: Unified diff