Ruby E-Mail-Versand - SMTP
SMTP (Simple Mail Transfer Protocol) ist eine Reihe von Regeln für die Übertragung von E-Mails von einer Quelladresse an eine Zieladresse und regelt, wie Nachrichten weitergeleitet werden.
Ruby bietet Net::SMTP zum Senden von E-Mails und bietet zwei Methoden: new und start:
newDie Methode hat zwei Parameter:
- ServernameStandardwert ist localhost
- PortnummerStandardwert ist 25
startDie Methode hat die folgenden Parameter:
- server- SMTP-Server-IP, standardmäßig localhost
- port- Portnummer, standardmäßig 25
- domain- Absenderdomain, standardmäßig ENV["HOSTNAME"]
- account- Benutzername, standardmäßig nil
- password- Benutzerpasswort, standardmäßig nil
- authtype- Authentifizierungstyp, standardmäßigcram_md5
Die Instanzmethode des SMTP-Objekts ruft sendmail mit den folgenden Parametern auf:
- source- Ein String, ein Array oder irgendetwas, das vom each-Iterator zu einem beliebigen Zeitpunkt zurückgegeben wird.
- sender- Ein String, der im Formularfeld der E-Mail erscheint.
- recipients- Ein String oder ein Array von Strings, die die Adresse des Empfängers darstellen.
Beispiel
Das Folgende bietet ein einfaches Ruby-Skript zum Versenden von E-Mails:
Beispiel
Verwenden Sie Net::SMTP, um eine Verbindung zum SMTP-Server auf dem lokalen Rechner herzustellen, und verwenden Sie die Methode send_message, um die E-Mail zu senden. Die Methodenparameter sind die E-Mail-Adresse des Absenders und die E-Mail-Adresse des Empfängers.
Wenn auf Ihrem lokalen Rechner kein SMTP-Server ausgeführt wird, können Sie Net::SMTP verwenden, um mit einem entfernten SMTP-Server zu kommunizieren. Wenn Sie Webmail-Dienste (wie Hotmail oder Yahoo Mail) verwenden, stellt Ihnen Ihr E-Mail-Anbieter die Details des Postausgangsservers zur Verfügung:
Der obige Code verbindet sich mit dem Mailserver mit Host mail.your-domain.com und Port 25. Wenn Sie einen Benutzernamen und ein Passwort eingeben müssen, lautet der Code wie folgt:
Das obige Beispiel verwendet den angegebenen Benutzernamen und das angegebene Passwort, um sich mit dem Mailserver mit Host mail.your-domain.com und Port 25 zu verbinden.
HTML-E-Mails mit Ruby senden
Net::SMTP bietet auch Unterstützung für das Senden von E-Mails im HTML-Format.
Beim Senden einer E-Mail können Sie die MIME-Version, den Dokumenttyp und den Zeichensatz festlegen, um eine E-Mail im HTML-Format zu senden.
Beispiel
Das folgende Beispiel wird verwendet, um eine E-Mail im HTML-Format zu senden:
Beispiel
E-Mails mit Anhängen senden
Wenn Sie eine E-Mail mit gemischtem Inhalt senden möchten, müssen Sie Content-type auf multipart/mixed setzen. Auf diese Weise können Sie Anhangsinhalt zur E-Mail hinzufügen.
Vor der Übertragung muss der Anhang diepack("m")Funktion verwenden, um seinen Inhalt in das base64-Format umzuwandeln.
Beispiel
Das folgende Beispiel sendet eine E-Mail mit Anhang /tmp/test.txt:
Beispiel
Hinweis:Sie können mehrere Empfängeradressen angeben, aber sie müssen durch Kommas getrennt werden.
Andere Erweiterungen