Eine neue Art, E-Mails zu versenden

Automatisch übersetzt von Deepl

Wir wissen, wie wichtig das Versenden von E-Mails ist und dass es in den heutigen Anwendungen zu einer alltäglichen Aufgabe geworden ist. Stellen Sie sich zum Beispiel vor, Sie sind in einem Unternehmen und möchten eine attraktive E-Mail auf HTML-Basis mit einigen Bildern oder sogar einem Video versenden und eine Datei anhängen(z. B. eine Bestellung oder eine Rechnung). Und das alles wollen Sie mit nur wenigen Zeilen Code erreichen. Code, der leicht zu schreiben und zu verstehen ist. Mit 4D v17 R4 ist das vorherige Szenario nun möglich. Deshalb haben wir den Funktionsumfang im Zusammenhang mit E-Mails erweitert.

Der Befehl SMTP New transporter Befehl ermöglicht es Ihnen, eine E-Mail in drei einfachen Schritten zu versenden:

  • Erstellen Sie Ihren SMTP-Transporter
  • Erstellen Sie Ihre E-Mail
  • Versenden Sie Ihre Emails

HDI erstellen und senden Sie eine E-Mail

Erstellen Sie eine E-Mail

Eine E-Mail ist ein Objekt mit einer Vielzahl von Eigenschaften, die in der transporter.send() Dokumentation beschrieben sind. Im Folgenden finden Sie ein Beispiel, wie Sie eine E-Mail mit Informationen wie Autor, Empfänger, Betreff, Nachrichtentext und Anhängen erstellen können.

Beginnen wir mit der Angabe des Verfassers der E-Mail:

$email:=New object
$email .from:="noreply.mail@4d.com

Dann die Empfänger (mit unterschiedlichen Syntaxen):

//Originating addresses
$email.to:="address1@mail.com,address2@mail.com"
// Carbon Copy
$email .cc:=New object("name"; "Stephen"; "email"; "address3@mail.com")
// Blind Carbon Copy
$email .bcc:="address4@mail.com,address5@mail.com"

Als nächstes fügen wir einen Betreff hinzu:

$email.subject:="Hallo Welt"

Und der Textkörper … Sie können zwei Typen angeben, einen Text:

$email.textBody:="Test-Mail \r\n Dies ist nur eine Test-E-Mail \r\n Bitte ignorieren Sie sie"

oder HTML:

$email.htmlBody:="<html><body><h1>Test-E-Mail </h1> Dies ist nur eine Test-E-Mail <br /> Bitte ignorieren Sie sie</body></html>"

Sie können beide gleichzeitig oder getrennt voneinander verwenden. Wenn Sie beide verwenden, hängt die Anzeige von dem vom Empfänger verwendeten E-Mail-Client ab.

Schließlich können wir eine Anhangsdatei hinzufügen mit dem MAIL New attachment Befehl hinzufügen:

$email.attachments:=New collection(MAIL New attachment("c:\\tmp\\4d.png"))

einen SMTP-Transporter erstellen

Nun, da wir unsere E-Mail haben, müssen wir sie versenden. Dazu müssen wir angeben, welchen SMTP-Server wir verwenden wollen, und zwar mit dem SMTP New transporter Befehl:

$smtp:=New object
$smtp .host:="smtp.hostname"
$smtp .port:=25
$smtp .user:="Benutzer"
$smtp .password:="Passwort"
$smtpTransporter :=SMTP New transporter($smtp)

Senden Sie die E-Mail

Der letzte Schritt ist das Versenden der E-Mail:

$status:=$smtpTransporter.send($email)

Hier sehen Sie die Test-E-Mail, die Sie in Ihrer Mailbox erhalten haben:

Wie Sie an den obigen Beispielen sehen können, wurde das Erstellen und Versenden von E-Mails drastisch verbessert und ist sehr einfach zu bedienen. Es gibt eine Menge versteckter Funktionen. Sie können ganz einfach die Einstellungen des Transporters testen (Benutzeranmeldeinformationen, Serverdaten), Anlagen können als Anhänge oder inline (innerhalb des HTML) angegeben werden, und vieles mehr. Dies ist die erste von mehreren Funktionen in der Pipeline, und wir werden iterativ mit jeder R-Veröffentlichung mehr und mehr Funktionen veröffentlichen.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.