cMailer

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

cMailer

Beitrag von malsdgtac » Mi 25. Apr 2018, 14:09

Hallo,

ich test über den integrierten Mailer Mails zu versenden.

Ich habe raus gefunden, dass man mit den folgenden zwei Codzeilen ein einfaches Mail versenden kann:

Code: Alles auswählen

$mailer = new cMailer();
$mailer->sendMail("Empfänger", "Absender", "Betreff, Nachricht");
Ist es denn nun so, dass für den Versand Swiftmailer verwendet wird und dabei auf die Konfigurationsdaten unter "System/Konfiguration" zurück gegriffen wird? Wenn ich also dort eine Verschlüsselung angebe, wird das Mail über eine gesicherte Verbindung gesendet?
Noch wichtig für mich: wo und wie werden die Konfigurationsdaten gespeichert?

Danke für Eure Antworten.

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: cMailer

Beitrag von frederic.schneider_4fb » Do 26. Apr 2018, 09:23

Guten Morgen,

standardmäßig setzen neuere CONTENIDO-Versionen auf den SMTP-Transport via Swiftmailer. Relevant dafür ist die System-Variable "mail_transport" mit dem Standardwert "smtp" (wir haben diese Prüfung eingeführt, um ein Fallback über die PHP-Funktion mail() bereitstellen zu können). Dies entspricht den Konfigurationsdaten unter System -> Konfiguration. Analog findest Du unter dem selben Reiter auch die Einstellungsmöglichkeiten für SMTP. Die Daten werden letztendlich in der Datenbank als weitere System-Variablen abgespeichert. Gibst Du eine Verschlüsselung und den passenden Port entsprechend den Vorgaben Deines Webhosters an, so findet der Versendeprozess verschlüsselt statt. Wichtig: Hängt an dem Mailsystem ein Eingabeformular o. ä., musst Du selbst für die verschlüsselte Übertragung der eingegebenen Daten sorgen; wir empfehlen daher, die Website über einen SSL-Layer (https) laufen zu lassen.
Frederic Schneider
Entwickler bei der four for business AG

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: cMailer

Beitrag von malsdgtac » Do 26. Apr 2018, 09:54

Hallo,

vielen Dank für deine Antwort.

Also wenn ich ein Kontaktformular habe und die dort eingegeben Daten dann über CMailer versende und
1. die Seite unter SSL/HTTPS läuft und
2. unter System / Konfiguration / SMTP die Maildaten und eine Verschlüsselung angebe
dann werden die Mails über eine verschlüsselte Verbindung versendet?

Kannst du mir bitte noch beantworten, wie die in der Konfiguration angegeben Daten sicher gespeichert werden? Werden diese verschlüsselt?

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: cMailer

Beitrag von frederic.schneider_4fb » Do 26. Apr 2018, 10:02

Lieber malsdgtac,

zur ersten Frage:
Ja, das ist pauschal beantwortet so korrekt. Explizit beantworten könnte ich es natürlich nur, wenn ich die Seite und den dahinterliegenden Code sehen würde, aber wenn Du diese Prinzipien anwendest, ist das der richtige Weg.

Zu letzterem:
Die Konfigurationsdaten werden in der Datenbank nicht verschlüsselt abgelegt, was auch regelmäßig keinen Sinn macht, da Daten wie etwa der Hostname vom Mail-System in Klartext benötigt werden. Man könnte allenfalls mit einer Verschlüsselung die Daten in der Datenbank speichern und vom selben Skript später wieder entschlüsseln lassen. Damit stünden sie zwar verschlüsselt in der Datenbank, könnten aber, wer die Verschlüsselungsart kennt, ohne großen Aufwand wieder entschlüsselt werden. Da die Datenbank allerdings im Regelfall nur mit Zugangsdaten gelesen werden kann, sind die Daten grundsätzlich erst einmal von fremden Zugriffen geschützt.
Frederic Schneider
Entwickler bei der four for business AG

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: cMailer

Beitrag von malsdgtac » Do 26. Apr 2018, 10:06

Danke für deine Einschätzung

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: cMailer

Beitrag von frederic.schneider_4fb » Do 26. Apr 2018, 10:08

Immer gerne :D
Frederic Schneider
Entwickler bei der four for business AG

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: cMailer

Beitrag von McHubi » Mi 23. Mai 2018, 16:33

Hallo zusammen,

ich bin gerade dabei meinen Formulargenerator in punkto smtp aufzubohren. Der Versand klappt soweit, allerdings stellt sich die Frage, inwiefern HTML-Mails realisierbar sind. Der PIFA versendet ja - korrigiert mich wenn ich falsch liege - ausschließlich Textmails, oder? Lässt sich die von malsdgtac genannte Zeile (hab sie mal etwas abgewandelt)

Code: Alles auswählen

$mailer->sendMail("Empfängermailadresse", "Absendername", "Betreff", "Nachricht");
ggf. noch um die Info "HTML oder Text" ergänzen?
In den Docs wurde diese Frage bereits vor ziemlich langer Zeit gestellt, allerdings nicht beantwortet:
https://docs.contenido.org/display/CONDEVE/cMailer

Danke euch für Infos! :D

Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: cMailer

Beitrag von Oldperl » Mi 23. Mai 2018, 16:44

Moin Markus,

hinter dem cMailer liegt die Swiftmailer-Lib. Einfach dort mal die Doku durchstöbern :arrow: https://swiftmailer.symfony.com/docs/introduction.html

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: cMailer

Beitrag von McHubi » Mi 23. Mai 2018, 16:47

Moin Ortwin,

ja, die schau ich mir grad seit ein paar Minuten durch. Sowas hier (mit Varianten) funktioniert allerdings nicht:

Code: Alles auswählen

  $mailer = new cMailer();
  $mailer->setContentType(text/html);
  $mailer->sendMail($email, $name, $mail_subject, $mail_body);
Jetzt werf ich mal einen Blick in die class.mailer.php
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: cMailer

Beitrag von Oldperl » Mi 23. Mai 2018, 16:49

Hier noch was zum Thema HTML-Mails :arrow: http://www.php-rocks.de/thema/91-html-e ... ailer.html

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: cMailer

Beitrag von McHubi » Mi 23. Mai 2018, 16:59

1)
So. Eine Anpassung einer Zeile in der class.mailer.php auf

Code: Alles auswählen

    public function sendMail($from, $to, $subject, $body = '', $cc = NULL, $bcc = NULL, $replyTo = NULL, $resend = false, $contentType = 'text/html') {
bringt schon mal eine vernünftige HTML-Mail zustande. Jetzt muss ich nur noch eine Möglichkeit finden, die hardcodierte Änderung hinsichtlich künftiger Updates aus dem Modul heraus anzusprechen, heißt "irgendwie" hier:

Code: Alles auswählen

  $mailer = new cMailer();
  $mailer->sendMail($email, $name, $mail_subject, $mail_body);
EDIT:
So geht's, ein Beispiel mit mehreren Empfängern und Auswahl von text/html oder text/plain:

Code: Alles auswählen

$send_from_email="mail@domain.de";
$recipients_in_array=array("peter@test.de","holla@waldfee.de");
$content_type="text/html";
$mail_subject="Infos im Betreff";
$mail_body="<table><tr><td>Name:</td><td>Lorem ipsum</td></tr></table>";
$mail_body_plain_text="Name: Lorem ipsum";

$mailer = new cMailer();
$message = Swift_Message::newInstance();
$message->setFrom($send_from_email);
$message->setSubject($mail_subject);
$message->setContentType($content_type);
if($content_type=="text/html") $message->setBody($mail_body);
  else $message->setBody($mail_body_plain_text);
foreach($recipients_in_array as $recipient)
  {
  $message->setTo($recipient);
  $mailer->send($message);
  }
Eine Anpassung in der class.mailer.php ist dann NICHT mehr notwendig!

2)
Aufgetauchte Zusatzfrage beim Lesen der Kommentare in der class.mailer.php:
* By default the cMailer tries to use an SMTP transport with optional
* authentication. If starting the SMTP transport fails, a simple MAIL
* transport will be used (using PHP's mail() function).
Wie finde ich heraus, dass smtp nicht geklappt hat? Kommt dann eine Fehlermeldung? Vor allem wenn statt der function
$mailer->sendMail(...);
aus der class.mailer.php
$mailer->send(...);
verwendet wird? :shock:

3)
Hat jemand evtl. ein eigenes Kontaktformular zustande gebracht, bei dem mit dem cMailer() eine Mail mit per Formular hochgeladenem Dateianhang drangeflanscht ist? Dann müsste ich hier nicht das Rad neu erfinden - allen Selbstlerneffekten zum Trotz... :wink:
EDIT:
Dazu braucht es in der Tat - für die Generierung der Mail jedenfalls - nur eine weitere Zeile:

Code: Alles auswählen

$message->attach(Swift_Attachment::fromPath($_FILES['attachment']['tmp_name'])->setFilename($_FILES['attachment']['name']));
Damit bliebe nur noch Frage 2 zu beantworten... :roll:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Antworten