cURL unterstützt das Senden von Daten an einen SMTP-Server
cURL sendet in Kombination mit Befehlszeilenoptionen eine E-Mail an einen Empfänger. Ursprünglich stand der Name für „see URL“ und wurde erst später zum aktuellen Backronym cURL umgedeutet.
Der grundlegende Befehl zum Senden einer E-Mail mit cURL.
1 2 3 |
curl smtp://mail.server.com --mail-from sender@domain.com --mail-rcpt receiver@domain.com --upload-file email.txt |
Beispiel Anwendung von cURL SMTP im Terminal-Emulator:
1 2 |
~]# curl -v smtp://mail.server.com/email.com --mail-from don@email.com --mail-rcpt rosa@email.com --upload-file email.txt |
Es folgt die Ausgabe im Terminal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 10.12.15.13... * TCP_NODELAY set * Connected to mail.server.com (10.12.15.13) port 25 (#0) < 220 mail.server.com ESMTP > EHLO email.com < 250-mail.server.com < 250-PIPELINING < 250-SIZE 22000000 < 250-ETRN < 250-ENHANCEDSTATUSCODES < 250-8BITMIME < 250 DSN 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> MAIL FROM:<don@email.com> SIZE=355 < 250 2.1.0 Ok > RCPT TO:<rosa@email.com> < 250 2.1.5 Ok > DATA < 354 End data with <CR><LF>.<CR><LF> } [355 bytes data] * We are completely uploaded and fine < 250 2.0.0 Ok: queued as B744B28008 100 355 0 0 100 355 0 355 0:00:01 --:--:-- 0:00:01 1334 * Connection #0 to host mail.server.com left intact |
Durch den Parameter -v wird die verbose Ausgabe erzeugt.
Die Datei email.txt wird von cURL zum SMTP-Relay hochgeladen und versendet.
1 2 3 4 5 6 7 8 |
From: Don <don@email.com> To: Rosa <rosa@email.com> Subject: Das ist ein Beispiel mit cURL SMTP Date: Sam, 19. Jan 2019 12:50:16 Hallo Rosa, Willkommen zum cURL eMail, heute ist ein schöner Tag. |
Der Inhalt von email.txt, die Zeilen From, To, Subject und Date sind Datenfelder, diese dem Simple Mail Transfer Protocol dient.
Der Mail Transfer Agent (MTA) muss so konfiguriert sein, das Mails von dem Host akzeptiert werden, auf diesem cURL eingesetzt wird, falls es nicht selber ein MTA ist, muss eine direktive bei smtpd_sender_restrictions, b.z.w. smtpd_client_restrictions konfiguriert werden.