Ergebnis 1 bis 11 von 11

Thema: php-Script e-mail Versand von mail() auf SMTP ändern

  1. #1
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard php-Script e-mail Versand von mail() auf SMTP ändern

    Hallo zusammen,

    in einer contao Installation wird der Mail-Versand derzeit über die php-Mail-Funktion erledigt mit

    Code:
    mail($email, $betreff, $mailText, $header);
    Das Ganze muss über ein php-Script laufen, weil die übergebene Daten gleichzeitig in eine externe DB eingetragen werden.

    Kann mir jemand Tipps geben wie ich das per SMTP versenden kann?
    Ist phpmailer benutzen eine gute Möglichkeit? (Für Frontendler )

    Viele Grüße,
    conter

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Einfach nur Contao\Email nutzen. Oder dir die Swiftmailer Instanz holen.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard

    Hallo zusammen,

    danke für den Tipp.

    Soweit bin ich jetzt schon mal gekommen

    Code:
    <?php
    
    //SWIFT
    require_once TL_ROOT.'/vendor/autoload.php';
    
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.strato.de', 465, 'ssl'))
      ->setUsername('username')
      ->setPassword('passwort')
    ;
    
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
    // Create a message
    $message = (new Swift_Message('Mein Betreff'))
      ->setFrom(['you@mail.de' => 'Sender'])
      ->setTo(['me@mail.de' => 'Empfänger'])
      ->setBody('Meine Nachricht')
      ;
    
    // Send the message
    $result = $mailer->send($message);
    Ich konnte eine Mail über SMTP versenden und empfangen

    Viele Grüße,
    conter



    Viele Grüße,
    conter

  4. #4
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard swiftmailer: E-mail mit insert-tags versenden klappt nicht

    Hallo zusammen,

    ich habe meine HTML-Mail jetzt erfolgreich zusammengebaut und möchte jetzt Textbausteine aus contao per Inserttags verwenden.

    Im alten Script hat
    Code:
    $formTextHeader = $this->replaceInsertTags('{{insert_article::107}}');
    funktioniert.
    Mit meinem Swiftmailerscript funktioniert es nur als echo-Ausgabe also
    Code:
    echo  $body;
    und
    Code:
    echo  $message;
    geben die Inhalte aus dem contao article korrekt wieder.

    Beim Versenden mit $formTextHeader-insert von oben kommt folgender Fehler:

    Code:
    [2021-11-12 16:41:04] request.CRITICAL: Uncaught PHP Exception RuntimeException: "Failed to start the session because headers have already been sent by "/var/www/clients/client3/web356/web/web/v1/vendor/contao/core-bundle/src/Resources/contao/modules/ModuleArticle.php" at line 160." at /var/www/clients/client3/web356/web/web/v1/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php line 152 {"exception":"[object] (RuntimeException(code: 0): Failed to start the session because headers have already been sent by \"/var/www/clients/client3/web356/web/web/v1/vendor/contao/core-bundle/src/Resources/contao/modules/ModuleArticle.php\" at line 160. at /var/www/clients/client3/web356/web/web/v1/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php:152)"} []
    [2021-11-12 16:41:04] request.CRITICAL: Uncaught PHP Exception RuntimeException: "Error when rendering "https://www.domain.de/_fragment?_hash=YME8XsY6D6zYy5eg3J7%2BwrIi%2B7tTBL8mEtvQDcwUeO8%3D&_path=insertTag%3D%257B%257Bua%253A%253Aclass%257Cattr%257D%257D%26_scope%3Dfrontend%26_format%3Dhtml%26_locale%3Dde%26_controller%3DContao%255CCoreBundle%255CController%255CInsertTagsController%253A%253ArenderAction&clientCache=900&pageId=171&request=testbuchen-feedback" (Status code is 500)." at /var/www/clients/client3/web356/web/web/v1/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php line 99 {"exception":"[object] (RuntimeException(code: 0): Error when rendering \"https://www.domain.de/_fragment?_hash=YME8XsY6D6zYy5eg3J7%2BwrIi%2B7tTBL8mEtvQDcwUeO8%3D&_path=insertTag%3D%257B%257Bua%253A%253Aclass%257Cattr%257D%257D%26_scope%3Dfrontend%26_format%3Dhtml%26_locale%3Dde%26_controller%3DContao%255CCoreBundle%255CController%255CInsertTagsController%253A%253ArenderAction&clientCache=900&pageId=171&request=testbuchen-feedback\" (Status code is 500). at /var/www/clients/client3/web356/web/web/v1/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php:99)"} []
    Wenn ich die Variable $formTextHeader = "Mein statischer Textheader"; nehme, wird die Mail korrekt verschickt

    Kann mir jemand helfen, die inserts auch mit zu versenden?

    Viele Grüße,
    conter

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Zitat Zitat von conter Beitrag anzeigen
    Im alten Script hat
    Code:
    $formTextHeader = $this->replaceInsertTags('{{insert_article::107}}');
    funktioniert.
    Korrekt wäre
    PHP-Code:
    use Contao\Controller;

    $formTextHeader Controller::getArticle(107); 
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard

    Hallo spooky,

    an welche Stelle müssen deine Zeilen?

    in meinem php gibt dieses nur ein einfaches "hallo" aus:
    Code:
    <?php
    
        include_once(TL_ROOT . '/templates/params.php'); 
        use Contao\Controller;
    
    
        $formTextHeader = Controller::getArticle(107);
    
        echo "hallo" . $formTextHeader;
        exit;
    Viele Grüße,
    conter

  7. #7
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard

    Noch mal zur Ergänzung ...

    Es ist ja kein Bundle, sondern ein php-Script, das über

    Code:
    {{file::meinscript.php}}
    eingebunden ist .

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Sowas solltest du generell vermeiden
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard

    ist wohl richtig,

    gleichzeitig kann ich keine Erweiterung schreiben

    gibt es noch einen Lösungsansatz für das Problem, das swiftmailer die insert nicht versenden kann?

    Viele Grüße,
    conter

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Für Applikationsanpassungen musst du keine Erweiterung/kein Bundle schreiben.
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    680

    Standard

    Hallo zusammen,

    ich habe das script jetzt mit swiftmailer versenden können.
    Die letzten Fehlermeldungen zu den inserts hatten mit dem nicht korrekten Token zu tun.

    Mit Token hat es jetzt auch mit der alten insert-Art funktioniert.

    Danke noch mal für die Hilfe!

    Viele Grüße,
    conter
    Geändert von conter (17.11.2021 um 14:09 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •