Es gibt Situationen, in denen ein Linux-System E-Mails versenden soll. Ein Beispiel wäre etwa Cron, das bei Problemen Status-Mails verschicken kann. Oder man betreibt einen Webserver, über den E-Mails mit der mail-Funktion von PHP versendet werden sollen. In solchen Fällen wäre die Einrichtung schwerer Brocken wie Postfix, Sendmail und Co. jedoch zu aufwändig.

Für Privatpersonen, die keinen richtigen Server mit gültigen Zertifikaten und festen IP-Adressen besitzen, ist es ohnehin nicht möglich, E-Mails direkt zu versenden. Die meisten Mail-Server lehnen E-Mails von solchen Servern ab, um Spam zu vermeiden. Privatnutzer müssen daher ihre Mails an einen SMTP-Relay-Server weiterleiten, also den SMTP-Server eines „richtigen“ Anbieters. Dafür genügt ein einfaches Tool wie ssmtp.

ssmtp ist kein vollwertiger MTA (Mail-Transfer-Agent) wie Postfix, Exim oder Sendmail. Es handelt sich vielmehr um ein kleines Tool, das eine E-Mail vom System entgegennimmt und sie an einen zuvor konfigurierten Mailserver weiterleitet. Wie eingangs erwähnt, müsste man mit einem Heimserver ohnehin einen MTA wie Postfix als „Satellite System“ konfigurieren und Mails über einen Smarthost leiten. Daher kann man sich die aufwendige Einrichtung eines vollständigen Dienstes sparen. ssmtp muss zunächst aus den Paketquellen installiert werden…

$ sudo apt-get install ssmtp

Nach der Installation gibt es zwei Konfigurationsdateien, die an die eigene Situation angepasst werden müssen: /etc/ssmtp/ssmtp.conf und /etc/ssmtp/revaliases. Beginnen wir mit der Datei ssmtp.conf, in der der zu nutzende Mailserver eingetragen wird.

$ sudo gedit /etc/ssmtp/ssmtp.conf

Im Folgenden führe ich Beispiele für die Konfiguration mit Google Mail und GMX an. Wie ihr sehen werdet, steht das Passwort im Klartext in der Konfigurationsdatei. Ich empfehle daher, für den eigenen Mailserver ein separates Konto bei einem Freemailer anzulegen oder bei Google die 2-Schritt-Verifizierung zu aktivieren, um ein spezifisches Passwort für ssmtp zu erstellen. So steht das Passwort nicht im Klartext auf der Festplatte.

Google Mail

root=EIN.BEISPIEL@gmail.com
mailhub=smtp.gmail.com:587
hostname=EIN.BEISPIEL@gmail.com
UseSTARTTLS=YES
AuthUser=EIN.BEISPIEL
AuthPass=GEHEIM
FromLineOverride=YES

GMX.net

root=EIN.BEISPIEL@gmx.de
mailhub=mail.gmx.net:465
rewriteDomain=gmx.net
hostname=gmx.net
UseTLS=YES
AuthUser=EIN.BEISPIEL@gmx.DE
AuthPass=GEHEIM
FromLineOverride=NO

Passt die in FETT geschriebenen Passagen an eure Gegebenheiten an. Die übrigen Einstellungen könnt ihr in der Regel unverändert übernehmen. Sobald die Datei ssmtp.conf vollständig konfiguriert ist, könnt ihr festlegen, welcher Benutzer welchen Mailserver verwenden darf. Dies wird in der Datei revaliases festgelegt, die ebenfalls in einem Editor geöffnet werden muss.

$ sudo gedit /etc/ssmtp/revaliases

Tragt hier im folgenden Format ein, welcher Benutzer welchen Server verwenden darf. In meinem Beispiel greife ich wieder auf Google Mail zu. Die in FETT markierten Passagen müssen ebenfalls angepasst werden.

root:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
www-data:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587
OTTO:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587

In meinem Beispiel dürfen „root“, der Benutzer des Webservers „www-data“ und der Benutzer „otto“ E-Mails direkt vom System versenden. Die zweite Zeile könnt ihr weglassen, falls bei euch kein Webserver installiert ist oder dieser keinen Zugriff auf ssmtp benötigt.

Nun kann die Konfiguration getestet werden. Eine Möglichkeit ist es, direkt über ssmtp eine E-Mail zu versenden. Der folgende Befehl schickt eine leere Mail an echo@tu-berlin.de, die daraufhin an euch zurückgesendet wird. So könnt ihr überprüfen, ob die Einstellungen korrekt sind. Mit dem Schalter -v werden außerdem Rückmeldungen im Terminal angezeigt. Nach dem Ausführen des Befehls müsst ihr noch Strg+D drücken, um die E-Mail zu senden.

$ ssmtp -v echo@tu-berlin.de
[<-] 220 smtp.gmail.com ESMTP x65sm8488142wmg.4 - gsmtp [->] EHLO EIN.BEISPIEL@gmail.com
[<-] 250 SMTPUTF8 [->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS [->] EHLO EIN.BEISPIEL@gmail.com
[<-] 250 SMTPUTF8 [->] AUTH LOGIN
[<-] 334 ############# [->] ##########
[<-] 334 #########
[<-] 235 2.7.0 Accepted [->] MAIL FROM:<EIN.BEISPIEL@gmail.com>
[<-] 250 2.1.0 OK ########### - gsmtp [->] RCPT TO:<echo@tu-berlin.de>
[<-] 250 2.1.5 OK x65s########### - gsmtp [->] DATA
[<-] 354 Go ahead ############# - gsmtp [->] Received: by EIN.BEISPIEL@gmail.com (sSMTP sendmail emulation); Thu, 11 Feb 2016 16:34:00 +0100
[->] From: "USERNAME" <EIN.BEISPIEL@gmail.com>
[->] Date: Thu, 11 Feb 2016 16:34:00 +0100
[->] 
[->] .
[<-] 250 2.0.0 OK 1455204843 ########### - gsmtp [->] QUIT
[<-] 221 2.0.0 closing connection ########### - gsmtp

Alternativ könntet ihr auch mit mutt oder mailx vollständige E-Mails versenden. ssmtp ersetzt natürlich keinen vollständig eingerichteten Postfix-Dienst auf einem richtigen Server. Doch wenn es darum geht, dass eine Workstation zu Hause lediglich ein paar Status-Mails versenden soll, ist ssmtp ein praktisches und einfaches Werkzeug.

Abonnieren
Benachrichtigungen:
guest
78 Kommentare
älteste
neuste
Inline Feedbacks
Zeige alle Kommentare
Toadie

Funktioniert super, danke!
bisher habe ich sendemail verwendet aber ssmtp bietet scheinbar mehr Möglichkeiten.

Jeffrey

Vielen Dank für die Anleitung! Habe gerade einen Server am Start, wo ich das ganz gut gebrauchen kann.

Praktisch, dass ich das Versenden so direkt über meine Google Mail Adresse durchführen kann.

Pa_trick17

(Wie immer) super Anleitung. Aber GUIs sollte man doch eigentlich mit ‚gksu‘ rootrechtlich starten – ’sudo‘ war da doch irgendwie böse (obwohl ich ehrlich gesagt mich noch nie damit beschäftigt habe warum).

Toadie

Ich sehe das, vor allem am eigenen Desktop Rechner, den man alleine nutzt als unproblematisch 😉

Daniel

Ich setze bei mir für diesen Zweck immer auf Nullmailer – ssmtp werde ich mir aber definitiv auch mal anschauen. Danke für die tolle Anleitung!

Dirk Deimeke

Der Vollständigkeit halber möchte ich gerne noch esmtp erwähnen, damit sind dann meines Wissens nach alle Mail-Weiterleiter genannt.

Gunter

Danke für die Anleitung, habe mir einen extra gmx Account geschaffen zum testen bekomme im Moment aber folgenden Fehler

.. Creating SSL connection to host
.. sSMTP[1376] : Invalid response SMTP Server (STARTTLS)
.. sSMTP[1376] : Cannot open mail.gmx.net:465

Habe die Konfig mehrfach überprüft, finde aber den Fehler nicht.
Danke für die Hilfe

Mike

Also ich kriegs mit Natty und google mail nicht zum Laufen. Ich hab natürlich noch nach anderen Howtos gesucht und auch genug gefunden, aber no chance.
Ich hab Deine Beispiele auf googlemail.com umgebogen, bin mir sicher über username/pass, typos etc pp.

Wenn ich den Testbefehl abschicke passiert nichts. Ich bekomme keine Befehlszeile mehr, und weder Strg-C/Strg-D helfen irgendwas. Ich muss den Job per kill wegschiessen.

Was mich irritiert: mein Thunderbird nutzt zum Versand Port 465 statt 587 und via SSL Login, nicht TLS…
Hat jemand ein Beispiel oder einen Hinweis, auf was man bei googlemail.com achten muß?

Danke trotzdem, ich bin sicher, wenn ich es mal ans Laufen gebracht habe, dann werd ichs auch mögen 😉

Mike

Sorry, hat sich erledigt. Waren diverse Kleinigkeiten. Man muß den Port nicht anpassen und ich hatte einen Fehler im Usernamen, den ich wirklich x-mal übersehen habe…. dann bekomm ich auch output…

Erwähnenswert wäre dennoch Strg-D nach dem ssmtp -v … das weiß sicher nicht jeder.

Vielen Dank für das Tut!

Cheers,
Mike

Anonym

Danke für den Hinweis strg+d! 😉

Stefan

Funktioniert prima ich hatte erst noch Probleme mit Resten von Sendmail als ich etwas wild rumprobierte.
Aber das ist ja eigene Unfähigkeit.

Crix

Geht das auch mit Hotmail????

Gunther

Nach dem ausführen von ssmtp -v echo@tu-berlin.de passierte bei mir erstmal – nichts. Ich habe gewartet und den ssmtp erstmal abgeschossen und nach Problemen mit meiner Netzwerkkonfiguration gesucht.

Vier Versuche später habe ich dann Strg-D gemacht und ssmtp hat dann die (leere) Mail verschickt. Ein ein paar mal „Enter“ wäre auch gegangen. Vielleicht sollte das noch mit rein in die ansonsten tolle Anleitung. Sonst wartet man nämlich lange darauf, dass ssmtp was verschickt 😀

Chain

Hallo!

Das hilft super. Gerade wenn man nicht in jedem OpenVZ-Container einen Mailserver fahren will – aber auch nicht seinen eigenen mit den Mails anderer „belasten“ will.

Funktioniert perfekt 🙂

streamline

Danke für die guten Tipps! Ich würde aber gerne meine logs als Attachment anhängen, nicht nur als body text evtl. auch als .tar . Das geht wohl so mit ssmpt nicht. Hast Du da eine Lösung?

Chain

Da gibt es tatsächlich eine Lösung, wenn auch nicht mit sSMTP. sSMTP kümmert sich ja nur um das zustellen der Mails an einen SMTP-Server, und nichts weiter. Dafür was du vorhast, brauchst du einen Mailclient.

Bei mir hat sich mutt als sehr nützlich herausgestellt:

mutt -a syslogs.tar.gz admin@domain.org < /dev/null

Das ist doch so ziemlich das was du suchst, oder? 😉 mutt übergibt die Mail dann an sSMTP.

streamline

das funktioniert leider nicht. Die Eingabedatei hat nur die Adressaten,Subject und Body angaben.
btw
In der config bei 1und1 auth plain angeben der rest dürfte klar sein.

Dirk Deimeke

Wirf bitte mal einen Blick auf Biabam („Biabam Is A Bash Attachment Mailer“).

streamline

Ja das geht, welchen mailer verwendet er dann eigentlich.

Dirk Deimeke

Den des Systems.

streamline

Auf meinem Testsystem hat es funktioniert möglicherweise, weil ich msmtp bereits installierte.
Auf meinem Ubuntu Server im Netz habe ich jetzt apt-get install biabam ausgeführt und er hat dann exim mit installiert.
Deinstallieren von exim mit apt-get remove exim4 exim4-base exim4-config exim4-daemon-light hat auch biabam weginstalliert.
Dann muss ich jetzt wohl exim configurieren?

streamline

apt-get install msmtp-mta das hatte gefehlt.
Dannach wurde auch exim wieder entfernt. Die Conifgdatei war noch vorhanden /etc/msmtprc.
Danke an alle für Eure Hilfe hier bekommt man wirklich brauchbare antworten.

Berlinerping

Hallo und THX für das gute Tut hat mir in sofern schonmal geholfen das E-Mails jetzt auch meine Webseite verschicken kann.
Habe das mit gmail.com gemacht funzt klasse.

Jedoch haben sich mir 4 Problehme eingestellt/dargestellt.

1. Es werden keine Systemmails lokal versendet und von root und user empfangen.
2. Ist bei versendeten E-Mails von der Webseite als Absender www-data angegeben.
3. E-Mails können nicht mehr Lokal versendet werden z.B. user1 möchte user2 eine Lokale E-Mail hinterlassen. (vermutlich selbe problem wie punkt 1)
4. habe ich keine lokale benachrichtigung ob ssmtp E-Mails versendet, leider nur im E-Mailkonto was mir etwas zuviel smaltalk nach aussen ist.

Gibt es da möglichkeiten das zu händeln ?
Habe bisher leider nichts gefunden was mich schlauer macht.
Für jeden Tip dankbar 😉

Mfg Berlinerping
P.S. benutze Debian 6 ohne GUI,Apache2, php5, mysql, DynDNS, CMS ist Joomla 2.5

Andreas WERNER

Ersetzt diese Lösung sendmail vollständig ? Oder laufen sendmail und ssmtp parallel ?

Muss man ein bereits laufendes sendmail anhalten/deaktivieren ?

Läuft ssmtp dann als cron job oder als Daemon ? Wie erfolgt der Aufruf von ssmtp ?

Der Testversand ssmtp -v echo@tu-berlin.de funktioniert bei mir. Die Echo-Mails der TU Berlin landen im Postfach.

Ich habe in maillog noch Einträge wie:

Oct 31 17:58:01 x66 sendmail[17662]: q9VGw1qQ017662: from=, size=595, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Oct 31 17:58:01 x66 sendmail[17661]: q9VGw10Y017661: to=xyz11, ctladdr=xyz11 (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30363, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q9VGw1qQ017662 Message accepted for delivery)
Oct 31 17:58:01 x66 sendmail[17663]: q9VGw1qQ017662: to=, ctladdr= (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30788, dsn=2.0.0, stat=Sent
Oct 31 17:59:01 x66 sendmail[17707]: q9VGx1cU017707: from=xyz11, size=363, class=0, nrcpts=1, msgid=, relay=xyz11@localhost
Oct 31 17:59:01 x66 sendmail[17708]: q9VGx1eh017708: from=, size=595, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Oct 31 17:59:01 x66 sendmail[17707]: q9VGx1cU017707: to=xyz11, ctladdr=xyz11 (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30363, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q9VGx1eh017708 Message accepted for delivery)
Oct 31 17:59:01 x66 sendmail[17709]: q9VGx1eh017708: to=, ctladdr= (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30788, dsn=2.0.0, stat=Sent
Oct 31 18:00:02 x66 sendmail[17756]: q9VH02nD017756: from=root, size=506, class=0, nrcpts=1, msgid=, relay=root@localhost
Oct 31 18:00:02 x66 sendmail[17754]: q9VH02rL017754: from=xyz11, size=363, class=0, nrcpts=1, msgid=, relay=xyz11@localhost
Oct 31 18:00:02 x66 sendmail[17757]: q9VH02FR017757: from=, size=737, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]

Dazu laufen noch zwei Prozesse:

root      1288     1  0  3314  2112   1 14:00 ?        00:00:00 sendmail: accepting connections
smmsp     1316     1  0  3184  1564   0 14:00 ?        00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
Andreas WERNER

alternatives –config mta

hilft weiter.

juppi_S

Ist ja toll! So einfach kann das gehen. Nach endlosen Versuchen mit Postfix hatte ich das Thema „eMail über Formular versenden“ schon abgehakt. Und nun: installiert – die beiden Dateien angepasst – fertig 🙂

Carsten Rieger

Hallo Christoph!
Mit diesem Blog konnte ich auf simpelste und schnellste Weise meine Owncloud zu 100% meinen Bedürfnissen anpassen. Es leben Cronjob-Nachrichten 😉
Vielen Dank – Carsten

Jan

Schön, dass Du mal darüber geschrieben hast! Ich habe letztens die Diskussion wieder gehabt, weil Fedora ja keinen eigenen MTA mehr installiert. Ich finde die Entscheidung auch richtig. Lediglich auf meinem, als MX eingetragenen, Server läuft Postfix: Eigener Mailserver. Auf allen anderen Büchsen wie z.B. meinem Raspberry Pi hab ich auch sSMTP und nutze darüber den externen Mailserver.

Ich glaube viele nutzen nicht sSMTP sondern Postfix oder Sendmail, weil es vorinstalliert ist und sie keine Lust haben die Dinger zu konfigurieren. Dann braucht man sich aber auch nicht wundern, wenn man immer im Spam-Filter landet. sSMTP ist mit Sicherheit die beste Lösung.

FrankM

Genau das was ich für meinen kleinen Homeserver gesucht habe.

Vielen Dank für das tolle HowTo!

Gruß Frank

Michi

Hello,

erstmals danke an Christoph für den guten sSMTP-Überblick.

Irgendwie funzt’s bei mir nicht ganz!

Ich will mit meinem raspberry keine Mails von außen empfangen (sitzt auch hinter eine Firewall und von außen ist nur der ssh:22 port geforwarded).

Was ich brauche:
1. crontab (von root, user1, user2, …)
STDOUT soll per Mail an „MAILTO“-variable geschickt werden
-> landet zurzeit im dead.letter-file

2. Mails an lokale user (user1 an user2):
wie muss ich den Empfänger angeben, damit die Mail intern und nicht gleich über den SMTP-relay gesendet wird?
-> eine Mail an „user1“ wird nicht an die Adresse im /etc/ssmtp/revaliases (user1:myaddress@gmx.at:mail.gmx.net:465) – also myaddress@gmx.at – gesendet, sondern an user1@gmx.net

Mailversand an externe User funktioniert manuell problemlos.
Also zB ‚echo „Hello World“|mails -s „MySubject“ irgendwer@irgendwo.com

/etc/ssmtp/ssmtp.conf (analog Bsp oben)
/etc/ssmtp/revaliases:
root:myaddress@gmx.at:mail.gmx.net:465
user1:myaddress@gmx.at:mail.gmx.net:465
user2:myaddress@gmx.at:mail.gmx.net:465

PS: Ein Tipp von meiner Seite um Attachments zu schicken (sudo get-apt install uuenview). Bsp:
cat mail.txt|uuenview -a -bo MyAttachment.tgz |sendmail -t
wobei das file mail.txt zB folgendes enthält:
–cut–
From: MyAddress@gmx.at
To: irgendwer@irgendwo.com
Subject: MySubject

Hier kommt der Body-text
blabla
–cut–

Helmut

Ich nutze mutt 1.5.22 unter cygwin zum mailen und hole mails per pop ab. Da gmx auf verschlüsselte mails umstellt, siehe http://www.gmx.net/e-mail-made-in-germany/ssl/, wollte ich meine Konfigurationsdatei .muttrc anpassen und ersetzte

set pop_host="pop.gmx.net"

durch

set pop_host="pop.gmx.net:995"

Leider bekam ich beim Abrufen der Mail die Meldung „Illegal instruction (core dumped)“. Der „core“ ist offenbar die Datei mutt.exe.stackdump mit folgendem Inhalt:

Exception: STATUS_ILLEGAL_INSTRUCTION at eip=0047D288
eax=00000040 ebx=611841BF ecx=00000068 edx=00000006 esi=004A355B edi=FFFFFFFF
ebp=000003FA esp=00228DA4 program=C:\Programme\cygwin\bin\mutt.exe, pid 1976, thread main
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame     Function  Args

mutt -v | grep ssl zeigt, dass in den configure-options –with-ssl und –enable-pop steht:

mutt -v | grep ssl
Configure options: '-C' '--with-mailpath=/var/spool/mail' '--disable-dependency-tracking' '--docdir=/usr/share
/doc/mutt-1.5.22' '--enable-fcntl' '--enable-hcache' '--enable-iconv' '--enable-imap' '--enable-locales-fix' '
--enable-pop' '--with-ssl' '--build=x86_64-pc-linux' '--host=i686-pc-cygwin' '--target=i686-pc-cygwin' '--pref
ix=/usr' '--exec-prefix=/usr' '--sysconfdir=/etc' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--lib
dir=/usr/lib' '--includedir=/usr/include' '--libexecdir=/usr/sbin' 'CFLAGS=-O2 -g' 'CXXFLAGS=-O2 -g' 'build_al
ias=x86_64-pc-linux' 'host_alias=i686-pc-cygwin' 'target_alias=i686-pc-cygwin' 'CC=i686-pc-cygwin-gcc'

Wenn ich den Standardport 110 eintrage, also

set pop_host="pop.gmx.net:110"

erhalte ich die identische Meldung und das gleiche mutt.exe.stackdump, das sich nur in der pid unterscheidet.

Die Datei .muttrc ist in Unix-Format gespeichert, das ist ja manchmal bei cygwin eine mögliche Fehlerquelle. Ich habe noch den Tipp verfolgt, die Variable pop_port extra zu setzen, aber mutt kennt sie nicht, und auch die Doku von mutt unter http://www.mutt.org/doc/manual/manual-6.html#ss6.3 sagt, dass der Port optional nach der Adresse und Doppelpunkt geschrieben wird:

pop_host

Type: string
Default: ""

The name of your POP server for the fetch-mail function. You can also specify an alternative port, username and password, ie:

[pop[s]://][username[:password]@]popserver[:port]

Hat jemand eine Idee? (Mail schicken würde ich gern weiter mit ssmtp.exe, geht auch nicht, dazu mehr in separatem thread, wird sonst zuviel hier.)

Vielen Dank im voraus und beste Grüße von

Helmut

Branisav Zelja

Hall Leute.

Ich habe mich an die Anleitung gehalten.
Was ich nicht so ganz verstehe.

Ich habe in der ssmtp.conf erste Zeile User_Name_AAAA=EIN.BEISPIEL@gmail.com und in der revalias User_Name_AAAA:EIN.BEISPIEL@gmail.com:smtp.gmail.com:587 eingetragen.

User_Name_AAAA gibt es auf dem System nicht als User.

Sowohl root als auch ich als normaler User können Mail versenden.
Was laut Anleitung für „User“ nicht gehen sollte.

eine Idee??

Gruß.

B. Zeljak

juppi_s (Josef)

Hallo Leute!
Nach upgrade auf Ubuntu 14.04 und Apache2 2.4.7 klappt das Versenden von Mails mittels Web-Formular nicht mehr. Zwar meldet das Formular: „Die Mail wurde versendet“, es wurde also kein Fehler erkannt, aber im Error-Log steht:
[Wed Oct 08 15:33:14.665413 2014] [core:notice] [pid 3017] AH00094: Command line: ‚/usr/sbin/apache2‘
ssmtp: No recipients supplied – mail will not be sent

Folgerichtig kommt auch keine Mail beim Empfänger an.

Wer kann mir auf die Sprünge helfen?

juppi_s

Hi Christoph!
Ich verwende genau das gleiche „mailer.php“ und die gleiche html-Eingabemaske, wie schon unter Ubuntu 12.04 (siehe Eintrag vom 10.2.2013).

Mail aus dem Terminal verschicken mit „ssmtp -v mail@domain.de < test.mail" funktioniert.

Feuj

Hallo Christoph,

danke für die Anleitung – sowas habe ich gesucht weil ich meinen N54L mit RAID5 aus der Ferne etwas „überwachen“ will.
Mit GMX funktioniert das prima, nun habe ich gerade mein (fast nutzloses) GMAIL-Postfach au das 2-Step_Verfahren umgestellt.
Bei meinem PC gings problemlos über die SMS – aber wie geht es bei einem debian7-Server über die Konsole?
Diese Variante über Gmail wäre mir lieber…
Danke.

reini

hallo,
eins vorweg…bin raspi-neuling…

wollte den mailversand einrichten (mittels gmx) – wenn ich die testmail sende, tut sich nichts…nach mehrmaligen enter drücken, bekomme ich folgende Meldung:

[] EHLO gmx.net
[] AUTH LOGIN
[] bW9vc3Jvc2VAZ214LmF0
[<-] 334 UGFzc3dvcmQ6
[] MAIL FROM:
[<-] 550 Sender address is not allowed.
ssmtp: 550 Sender address is not allowed.

was kann hie der fehler liegen? mit str+d hab ich es schon versucht...funzt auch nicht

wäre über Unterstützung sehr erfreut

danke

Klaus Kruse

Der Fehler steht doch in der Ausgabe: „ssmtp: 550 Sender address is not allowed.“

GMX wird wohl vermutlich (auch) keine beliebigen Absenderadressen wie root@Hostname mehr erlauben. Ein „FromLineOverride=YES“ sollte das beheben.

Manuel

Hallo,

ich habe schon länger ssmtp benutzt und es hat immer wunderbar funktioniert. Seit kurzem bekomme ich allerdings folgenden Fehler
„Invalid response SMTP server“

Hat GMX was geändert, sodass ssmtp nicht mehr funktioniert?
Ich verwende folgende Konfiguration:

root=user@gmx.de
mailhub=mail.gmx.net:465
rewriteDomain=gmx.net
hostname=gmx.net
UseTLS=YES
AuthUser=user@gmx.de
AuthPass=password
FromLineOverride=YES

Ich würde mich sehr über Antworten freuen.

Gruß,
Manuel

Stefan

Auch von mir herzlichen Dank für die Anleitung. Hat alles auf Anhieb geklappt und ich konnte mir postfix ersparen und erfahre so jeden Morgen, ob meine Backups geklappt haben.

Gruß
Stefan

Dirk

Vielen Dank für die Arbeit die Du dir gemacht hast!
Super geschriebene und verständliche Anleitung!!
Spart doch einige Ressourcen auf meinem Raspberry 🙂

Mike

Servus,

erstmal ein dickes Danke für den Tutorial. Ich kann nun via ssmtp (via konsole) auf meine pi2 Mails verschicken, das klappt schon mal. Nun möchte ich gern auch einen Anhang mit Hilfe von mutt vesenden. Mein Aufruf schaut folgendermaßen aus:

mutt -a /home/pi/aufnahmen/image.jpg empfaenger@web.de < /dev/null

Als Fehler erhalte ich:

Kann Verzeichniseintrag für Datei empfaenger@web.de nicht lesen: Datei oder Verzeichnis nicht gefunden
empfaenger@web.de: Kann Datei nicht anhängen.

Irgendwo ist hier noch der Wurm drin, kannst du mir hier helfen?

Grüße Mike

Mike

Der Aufruf von: msmtp -a default empfaenger@web.de < /home/pi/aufnahmen/image.jpg

gibt folgendes aus:

msmtp: Umschlagabsenderadresse pi wird vom Server nicht akzeptiert
msmtp: Nachricht des Servers: 501 Syntax error in parameters or arguments
msmtp: konnte Mail nicht verschicken (Account default aus /etc/msmtprc)

Würde mich sehr freuen, wenn du mir helfen könntest.

Markus

Vielen Dank für die tollen Infos zu ssmtp. Super Idee, wenn es für meine Planungen geht.

1.) Ich möchte Web-Formulare von meiner Webseite über ssmtp an Fremde versenden.

2.) Und Fremde sollen auch über ein Formular Kontakt zu mir aufnehmen können.

z.B. mit GMX

Kann mir jemand sagen, was ich dann unter

form name=“form1″ method=“post“ action=“adresse??“

und Versand mit php mail? (Absender) verwenden muss?

Kennt jemand eine Beispielseite?

Vielen Dank

Michael

Kannst Dir ja zB mal „http://www.lynda.com/articles/send-email-from-a-web-form-with-php“ anschauen.
Deine Aufgabe hat ja eigentlich nichts damit zu tun, wie die Mail dann letztendlich versendet wird …

Criss

Hat jemand schon mal eine Lösung gefunden wegen dem Klartext-Passwort? Ich überlege:

AuthUser=EIN.BEISPIEL
AuthPass=GEHEIM

von einer externen Datei includen zu lassen.

Man könnte dann per PHP vor dem Absenden die Daten bereitstellen und nach dem Absenden wieder entfernen.

include scheint aber in der ssmtp.conf nicht zu gehen. Oder muss man dazu irgendwas in den Einstellungen ändern?

Andere Ideen?

criss

So ich habe es gelöst, das Problem bei ssmtp.

1.) Ich schreibe über ein Script und PHP exec die Daten des Mailaccounts in die beiden Dateien in /etc/ssmtp/

2.) Ich sende die Mail() ab.

3.) Ich lösche die Einträge aus den conf dateien wieder raus.

Der Vorteil ist, dass ich nun beliebige User und Konfigurationen verarbeiten kann. Jedes Mailkonto ein Dateiblock, der jeweils geschrieben und entfernt wird.

War eine ziemliche Fummelei. Passwort und Username liegen nun nicht mehr im Klartext in der ssmtp.conf.

Somit ein richtig schönes erweitertes Mailsystem.

Hat sich also erledigt 🙂

stef

Hallo,

ich versuche seit Studen E-Mail via ssmtp auf einem Arduino Yun zu versenden. Dabei erhalte ich immer die Fehlermeldung:

ssmtp: 530 5.7.0 Must issue a STARTTLS command first. (YUN)

Ich verwende eine E-Mail-Adresse von T-Online. Mit den selben Zugangsdaten funktioniert der Mailvesand z.B. mit Thunderbird.
Gibt es irgend eine Strategie, wie ich den Fehler finden kann?

Danke vorab!

Sarius_444

Hi Leute, ich hab die aleitung komplett befolgt, bin dem „gmail weg“ gefolgt und bekomme jetzt beim Test email senden folgende Fehlermeldung:
ssmtp: Cannot open smtp.gmail.com:587
Weiß jmd woran das liegt?

Andreas

stell bei hostname=localhost ein, dann sollte es gehen

phil

Super Anleitung, aber bei mir ergaben die Testmails immer ungefähr (wegen Gößer-Kleiner-Zeichen in der Original-Fehlermeldung) folgende Fehlermeldung:

501 5.5.2 EIN.BEISPIEL?mailbox.org: Helo command rejected: Invalid name
ssmtp: RCPT TO:empfaenger@example.com (501 5.5.2 EIN.BEISPIEL?mailbox.org: Helo command rejected: Invalid name)

Der Fehler war in der Zeile „hostname=EIN.BEISPIEL@gmail.com“. Aus dem @ wurde offensichtlich ein Fragezeichen. Bei mailbox.org zumindest darf hinter „hostname=“ nur die domain stehen, also „hostname=mailbox.org“. Vielleicht ist gmail da toleranter…

Andreas

Ist klar der Artikel ist schon etwas älter, jedoch lag er immer in meinen Favoriten rum.
Hab mich heute mal dazu durch gerungen ein Ubuntu-Server auf zusetzten zum entwickeln von PHP usw.
alles soweit super.

hab auch alles ans laufen bekommen, jedoch solltest Du den Eintrag hostname=EIN.BEISPIEL@gmail.com bei gmail auf hostname=localhost ändern. Denn sonst geht es nicht, jedenfalls bei mir.

Eine Frage noch dazu, ich bekomme immer alle Emails auch an die gmail Adresse: kann man das verhindern?

Mit freundlichen Grüßen Andreas

Thomas

Kann die Probleme von Andreas bestätigen, d.h.
hostname=localhost muss gesetzt werden (oder zumindest nicht hostname=EIN.BEISPIEL@gmail.com
– Alle Emails landen in der Mailbox des genutzten Mailservers

Gruß
Thomas

Sebastian

Hi zusammen,

ich verzweifle noch und hoffe auf Hilfe.
Ich hab alles so auf nem RasPi installiert wie beschrieben.
Das versenden über Komandozeile als user pi (root) funktionier auch einwandfrei.
Doch als www-data (hab ich auch in die /etc/ssmtp/revaliases eingetragen) bekomme ich den Fehler: ssmtp: Cannot open smtp.stato.de:465

Kann mir bitte jemand helfen?

Danke
Sebastian

Georg

Vielen Dank für die tolle Anleitung!
Ich habe zwei ganz kurze und ggf. doofe Fragen:
– Nimmt ssmpt E-Mails ‚asynchron‘ entgegen und leitet diese automatisch an den konfigurierten SMTP-Server weiter, auch wenn dieser mal nicht zur Verfügung steht?
– wenn man aus Java Mails versenden möchte, wie spreche ich dann ssmpt am einfachsten an? Horcht der Server auf einem lokalen Port?

Besten Dank!

Mirco

Danke für diese Beschreibung, auch wenn ich jetzt sehr lange gesucht habe, warum ei mir immer nur der Fehler kam: ssmtp: Authorization failed (535 Authentication credentials invalid)
Ich echt alles probiert, aber leider erst keine Lösung gefunden.
Erst als ich irgendwo den Hinweis mit Sonderzeichen im PW gesehen habe, konnte ich mir schon denken was da im Busch ist. Und tatsächlich, ich habe das PW geändert und es geht!
Also Sonderzeichen im PW sind unter Linux immer wieder mal ein Problem!

Manni

Hi,

danke für die Anleitung. Ich verwende nen Raspberry mit Debian und das Mail versenden klappt auch soweit, nur hab ich folgendes komisches Phänomen:

Wenn ich die Mail über die Kommandozeile direkt mit:
echo „Hello world email body“ | mail -s „Test Subject“ recipientname@domain.com
sende kommt bei mir der eingetragene Alias in der /etc/ssmtp/revaliases „richtig“ an.
In der Revaliases sind die Nutzer root und pi wie in der Anleitung eingetragen.

Wenn ich den gleichen „Code“ in einem Bash-Script verwende dann ist der Absender immer „root“ ohne irgendetwas sonst??? Woran könnte das liegen?

Jürgen

Hallo Christoph,

vielen Dank für die tolle Anleitung. Leider musste ich mein Google Konto auf die Verwendung weniger sicherer Apps umstellen.
Gibt es dafür eine Abhilfe?

Gruß Jürgen

Manuel

Moin Moin,

wie kann ich täglich um 00:00 den Befehl Uptime ausführen lassen und die ausgabe per E-Mail versenden?
Der ssmtp ist bereits eingerichtet.

Manuel

Noch einige Nachträge.

1.) Den ssmtp habe ich wie oben steht auf GMX eingerichtet.
Es kommt aber beim Testen ein Fehler:
$ ssmtp -v echo@tu-berlin.de
[] EHLO gmx.net
[] AUTH LOGIN
[] bWFpbC12b24tamVubnlAZ214LkRF
[<-] 334 UGFzc3dvcmQ6
[<-] 535 Authentication credentials invalid
ssmtp: Authorization failed (535 Authentication credentials invalid)

2.) Wenn ich in der Console "mail -s ./usr/bin/uptime mail@mail.de" eingebe und absende kommt "-bash: mail: Kommando nicht gefunden.".
Mit welchem Befehl wird die Mail versendet?

Michi

1) dann ist bei dem GMX setup was falsch …
2) tgl um Mitternacht: Google einmal nach crontab
Mail Versand:
uptime | mail -s uptime-notice mail@gmx.net

Rainer

Hi,
klasse Anleitung. Ich habe ssmtp auf einem RaspberryPi mit Debian 9 eingerichtet.
Hat wunderbar funktioniert.

Die Kommandozeile

echo "Hello world email body" | mail -s "Test Subject" recipientname@domain.com

die überall angepriesen wird funktioniert nur in so weit, daß ich eine EMail bekomme, aber Absender, Betreff und Text fehlen.

Ich habe dann eine EMail mit

ssmtp EMAIL_ADRESSE@gmx.de
To: EMAIL_ADRESSE@gmx.de
From: EMAIL_ADRESSE@gmx.de
Subject: Test EMail

Hi,
das ist eine Testmail

geschickt.

Beim ersten mal funktioniert das wunderbar. Beim zweiten und weiteren malen, bekomme ich wieder kein Sender und kein Betreff, aber alles im Textfenster. Also To: …
Als ob ssmtp die weitere(n) EMails für als zugehörigen Text zur ersten EMail hält. Nach einem reboot funktioniert es wieder genau ein mal. Dann das gleiche Problem wieder.

Hat vielleicht einer eine Idee an was das liegen kann?
Vielen Dank.

/etc/ssmtp/ssmtp.conf:
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail.gmx.net:587
AuthUser=EMAIL_ADRESSE@gmx.de
AuthPass=GEHEIM
UseSTARTTLS=YES

# Where will the mail seem to come from?
rewriteDomain=gmx.de

# The full hostname
hostname=rp5000-FHEM

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES


/etc/ssmtp/revaliases:
# sSMTP aliases
#
# Format:       local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:EMAIL_ADRESSE@gmx.de:mail.gmx.net:587
Rene

Habe die letzten Stunden damit verbracht ssmtp mit einem neuen GMX Account zum laufen zubringen, bekommen habe Ich immer „ssmtp: Authorization failed (535 Authentication credentials invalid)“, habe es dann mit web.de probiert, die Error Meldung/Nummer dort brachte mich dann darauf, das man in den Einstellungen, auf der GMX/Web.de-Seite, die Nutzung von dritt Software wie Outlook/Thunderbird usw. extra aktivieren muß… danach funktionierte es sowohl mit gmx als auch web.de

Tom

Hallo Rene,
auch habe die „535“-Erfahrung mit meinem GMX-Account gemacht und bislang keine Lösung gefunden. Nach Umstellung des Config-Files auf meinen Account bei ‚kabelmail‘ lief alles innerhalb von 10min.

Den Hinweis, bei GMX eine externe Nutzung extra zu aktivieren, habe ich mehrfach gelesen. Nur nutze ich Thunderbird (PC) und K9-Mail (Android) seit Jahren, ohne dass ich jemals bei GMX etwas separat freigegeben hätte.

In der Web-Mail-Oberfläche von GMX habe ich keine Option gefunden, wo ich etwas aktivieren könnte.

Kannst du mir mitteilen, wie du das geschafft hast? Für deine Mühe vielen Dank im Voraus!