CONTENIDO 4.10.2-dev cMailer und Swift Mailer

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

CONTENIDO 4.10.2-dev cMailer und Swift Mailer

Beitrag von xmurrix »

Hallo zusammen,

im aktuellen CONTENIDO Entwicklungszweig 4.10.2-dev (Stand 25.02.2024) gibt es folgende Änderungen bezüglich der verwendeten Swift Mailer Library und der cMailer Klasse:
  • Swift Mailer ist auf die Version 5.4.12 aktualisiert worden
  • Der Quellcode der neuen Swift Mailer Version wurde auf PHP 8 (bis einschließlich PHP 8.2) adaptiert
  • Die cMailer-Klasse unterstützt nun Datei-Anhänge, Beispiele siehe unten
E-Mails mit Dateianhang versenden:

Code: Alles auswählen

$mailer = new cMailer();
$mailer->addAttachment('/path/to/filename.ext');
$mailer->sendMail('sender@contenido.org', 'recipient@contenido.org', 'subject', 'some message');
E-Mails mit dynamischem Dateianhang versenden:

Code: Alles auswählen

// Create PDF on the fly
$data = create_my_pdf_data();
$mailer = new cMailer();
$mailer->addDynamicAttachment($data, 'my-file.pdf', 'application/pdf');
$mailer->sendMail('sender@contenido.org', 'recipient@contenido.org', 'subject', 'some message');
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
bodil
Beiträge: 372
Registriert: Fr 7. Okt 2011, 04:10
Hat sich bedankt: 2 Mal
Danksagung erhalten: 7 Mal
Kontaktdaten:

Re: CONTENIDO 4.10.2-dev cMailer und Swift Mailer

Beitrag von bodil »

Vielen Dank dafür!
Mir sind eben beim Einsatz allerdings 2 Deprecated-Meldungen aufgefallen, die ich mithilfe eines Workatounds aber abstellen konnte. Vielleicht ist der ja auch für andere hilfreich.
In beiden Fällen ging es um die Funktion call_user_func_array:
contenido/classes/swiftmailer/lib/classes/Swift/Message.php
Hier habe ich den Code

Code: Alles auswählen

          call_user_func_array(
            array($this, 'Swift_Mime_SimpleMessage::__construct'),
            Swift_DependencyContainer::getInstance()
                ->createDependenciesFor('mime.message')
            );
ersetzt durch

Code: Alles auswählen

list($headers, $encoder, $cache, $grammar, $charset) = Swift_DependencyContainer::getInstance()->createDependenciesFor('mime.message');
parent::__construct($headers, $encoder, $cache, $grammar, $charset);
contenido/classes/swiftmailer/lib/classes/Swift/SmtpTransport.php
Hier habe ich den Code

Code: Alles auswählen

        call_user_func_array(
            array($this, 'Swift_Transport_EsmtpTransport::__construct'),
            Swift_DependencyContainer::getInstance()
                ->createDependenciesFor('transport.smtp')
            );
ersetzt durch

Code: Alles auswählen

list($buf, $extensionHandlers, $dispatcher) = Swift_DependencyContainer::getInstance()->createDependenciesFor('transport.smtp');
parent::__construct($buf, $extensionHandlers, $dispatcher);
Antworten