# [Solved]msmtp und versenden von systemmails

## MALON3

hi zusammen

Ich hab hier folgendes scenario:

Ich will von einer Gentoo box den vom System erzeugten output(cron) und logs(logrotate) an meinen gmx account weiterleiten...

Dazu hab ich mir msmtp gemered da ssmtp ja standart maessig kein smtp auth unterstützt.

1. Eine grundsaetzliche Frage:

Mit dem useflag mailwrapper wurde auch mailwrapper installiert.

Mailwrapper macht ja nix anderes als ein "gefaketes" sendmail zu installieren und sobald sendmail aufgerufen wird den aktuellen MTA aufruft aus der /etc/mail/mailer.config in meinem fall:

```

# Execute the "real" sendmail program from msmtp,

# named /usr/bin/msmtp

sendmail        /usr/bin/msmtp

send-mail       /usr/bin/msmtp

mailq             /usr/bin/msmtp

newaliases     /usr/bin/msmtp

```

Sendmail wird dann standardmaessig wiederum von den Diensten wie zb. cron aufgerufen um die Mails zu versenden

lieg ich da richtig? Und brauch ich das Ueberhaupt?

2. Das Problem

Hab msmtp nach dem http://msmtp.sourceforge.net/msmtp.html konfiguriert.

msmtp config:

```

# account

account default

host mail.gmx.net

port 25

protocol smtp

domain gmx.de

# smtp auth

auth cram-md5

user username

password pass

# tls

tls on

tls_starttls on

tls_certcheck on

# envolpe addresse

from malonx@gmx.de

# dsn

dsn_notify off

dsn_return off

# log to specified file

# and not with syslog

logfile /var/log/mail/msmtp.log

syslog off

```

Das versenden von mails via sendmail funktioniert auch(halbwegs)

```
echo "Test Mail" | sendmail malonx@gmx.de
```

Die Mail kommt an allerdings _ohne_ Inhalt!?

Hab auch mal einen test cronjob eingerichtet(vixie-cron) 

```

*      *      *     *       *                root       /usr/bin/echo "Test Mail..."

```

```

MAILTO="malonx@gmx.de" 

```

ist auch gesetzt in der /etc/crontab

allerdings spuckt cron aus:

```

Aug  7 15:07:01 alpha cron[8365]: (root) CMD (/usr/bin/echo "Test Mail..." )

Aug  7 15:07:01 alpha cron[8364]: (root) MAIL (mailed 13 bytes of output but got status 0x0040 )

```

und keine mail kommt an auch im mstmp log ist _nix_ zu sehen davon... 

Bin mit meinem Latein immoment am Ende und weiß� nicht wo ich jetzt ansetzten soll...

gruß malon3Last edited by MALON3 on Fri Nov 25, 2005 11:58 pm; edited 6 times in total

----------

## Deever

1. Dein Posting ist aufgrund einer Fehlkonfiguration deines Browsers kaputt. Umlaute müssen gemäß MIME-Standard (und Forenregeln) kodiert werden. Stichwort: ISO-8859-15 charset

2. Jede Mail wird beim Übertragen durch "\n.\n" terminiert. In deinem Falle ist die Mail also fertig, bevor sie fertig sein darf.

HTH && Gruß,

/dev

----------

## MALON3

 *Deever wrote:*   

> 
> 
> 2. Jede Mail wird beim Übertragen durch "\n.\n" terminiert. In deinem Falle ist die Mail also fertig, bevor sie fertig sein darf.
> 
> 

 

Das heißt im Klartext, dass sobald in einer mail ein "leerzeile . leerzeile" auftritt wird die uebertragung abgebrochen oder abgeschlossen? Wo ist beim mir den das der Fall das ein _einzelner_ "." vorkommt?

Vermutlich steh ich aber grad auch auf dem Schlauch...

gruß

p.s. hab die sonderzeichen rausgemacht  :Wink:  danke für den hinweis...

----------

## Deever

 *MALON3 wrote:*   

> Das heißt im Klartext, dass sobald in einer mail ein "leerzeile . leerzeile" auftritt

 Nein, "Return.Return", also, auf das Terminal ausgegeben, eine Zeile mit einem Punkt als einziges Zeichen.

 *Quote:*   

> wird die uebertragung abgebrochen oder abgeschlossen?

 Nein, die Email ist vor eben dieser Zeile zu Ende.

 *Quote:*   

> Wo ist beim mir den das der Fall das ein _einzelner_ "." vorkommt?

 Parse error.

 *Quote:*   

> Vermutlich steh ich aber grad auch auf dem Schlauch...

 Benutze z.B. Netzwerktools wie Ethereal, um mehr über die Protokolle herauszufinden.

 *Quote:*   

> p.s. hab die sonderzeichen rausgemacht  danke für den hinweis...

 Bitteschön!  :Wink: 

Gruß,

/dev

----------

## MALON3

 *Deever wrote:*   

> 
> 
> Nein, "Return.Return", also, auf das Terminal ausgegeben, eine Zeile mit einem Punkt als einziges Zeichen.
> 
> 

 

Ok

 *Deever wrote:*   

> 
> 
> Benutze z.B. Netzwerktools wie Ethereal, um mehr über die Protokolle herauszufinden.
> 
> 

 

Werd ich mal machen wenn ich wider ein bisschen mehr zeit habe, hört sich aufjedenfall interessant an!

Oder spätestens bevor ich mir nen mailserver aufsetze...

Mit mail und deren protokollen hab ich bis jetzt wirklich _sehr_ wenig beschäfitgt...darum wollte ich auch den einfachsten weg gehn und die mails nur weiterleiten...

gruß malon3Last edited by MALON3 on Sun May 06, 2007 12:40 pm; edited 1 time in total

----------

## MALON3

Hier mal noch ein bischen mehr output:

```

echo "Test Mail" | msmtp -d malonx@gmx.de

loaded system configuration file /etc/msmtprc

ignoring user configuration file /root/.msmtprc: No such file or directory

using account default from /etc/msmtprc

host            = mail.gmx.net

port            = 25

connect timeout = off

protocol        = smtp

domain          = gmx.de

auth            = CRAM-MD5

user            = user

password        = pass

ntlmdomain      = (not set)

tls             = on

tls_trust_file  = (not set)

tls_key_file    = (not set)

tls_cert_file   = (not set)

tls_starttls    = on

tls_certcheck   = on

from            = malonx@gmx.de

maildomain      = (not set)

dsn_notify      = (not set)

dsn_return      = (not set)

keepbcc         = off

logfile         = /var/log/mail/msmtp.log

syslog          = (not set)

reading recipients from the command line

<-- 220 {mp033} GMX Mailservices ESMTP

--> EHLO gmx.de

<-- 250-{mp033} GMX Mailservices

<-- 250-8BITMIME

<-- 250-ENHANCEDSTATUSCODES

<-- 250-AUTH=LOGIN CRAM-MD5 PLAIN

<-- 250-AUTH CRAM-MD5 LOGIN PLAIN

<-- 250 STARTTLS

--> STARTTLS

<-- 220 2.7.0 {mp033} Ready to start TLS

TLS certificate information:

    Owner:

        Common Name: mail.gmx.net

        Organization: GMX GmbH

        Locality: Munich

        State or Province: Bayern

        Country: DE

    Issuer:

        Common Name: Thawte Server CA

        Organization: Thawte Consulting cc

        Organizational unit: Certification Services Division

        Locality: Cape Town

        State or Province: Western Cape

        Country: ZA

    Validity:

        Activation time: Thu Nov 18 15:12:50 2004

        Expiration time: Fri Nov 18 15:12:50 2005

    Fingerprints:

        SHA1: ....(ausgabe verändert)

        MD5:  ....(ausgabe verändert)

--> EHLO gmx.de

<-- 250-{mp033} GMX Mailservices

<-- 250-8BITMIME

<-- 250-ENHANCEDSTATUSCODES

<-- 250-AUTH=LOGIN CRAM-MD5 PLAIN

<-- 250-AUTH CRAM-MD5 LOGIN PLAIN

<-- 250 STARTTLS

--> AUTH CRAM-MD5

<-- 334 ....(ausgabe verändert)

--> ....(ausgabe verändert)

<-- 235 2.7.0 {mp033} Go ahead

--> MAIL FROM:<malonx@gmx.de>

<-- 250 2.1.0 {mp033} ok

--> RCPT TO:<malonx@gmx.de>

<-- 250 2.1.5 {mp033} ok

--> DATA

<-- 354 {mp033} Go ahead

--> Test Mail

--> .

<-- 250 2.6.0 {mp033} Message accepted

--> QUIT

<-- 221 2.0.0 {mp033} GMX Mailservices

```

Also für mich ist hier kein fehler erkennbar?

Der Punkt am Ende der Mail scheint ja richtig gestezt zu sein so wie ich das sehen kann!?

Wie gesagt ich bekomme nur ne leere mail

gruß malon3Last edited by MALON3 on Fri Nov 25, 2005 11:59 pm; edited 1 time in total

----------

## MALON3

Hab mal im englischen Teil des Forums einen Thread gestartet.

https://forums.gentoo.org/viewtopic-p-2643847.html#2643847

Vieleicht kommt dort jemand dem Fehler auf die Spur.

gruß malon3

----------

## MALON3

Hi

So hab mein Problem mit Hilfe der msmtp Mailinglist gelöst bekommen  :Smile: 

 *MALON3 wrote:*   

> 
> 
> Das Versenden von mails via sendmail funktioniert auch(halbwegs)
> 
> ```
> ...

 

Funktioniert nicht, da diese 'Test Mail' nur aus einer unzulässigen Headerline besteht und somit vermutlich vom gmx smtp Server ignoriert wurde...

Ein:

```

echo -e "Subject: Test Mail\n\nTest Mail" | sendmail malonx@gmx.de 

```

Funktioniert  :Wink: 

 *MALON3 wrote:*   

> 
> 
> allerdings spuckt cron aus:
> 
> ```
> ...

 

Funktionierte nicht, da vixie-cron sendmail(msmtp) die Option -F übergibt, welche den Namen des Senders im Endeffekt auf "Cron Daemon" setzten soll...

Diese Option wird von der aktuellen msmtp Version nicht unterstüzt!

Die nächste Version von msmtp soll diese Option (unterstützen)

Zitat des Entwicklers:

 *Quote:*   

> 
> 
> I will add "support" for this option in the next version: msmtp will
> 
> silently ignore it, because it can do nothing meaningful with this
> ...

 

Hier auch ein kleiner Workaround:

Man kann die sourcen von vixie-cron sehr leicht verändern, sodas die -F Option

nicht übergeben wird.

Einfach in Zeile 44 von config.h "-FCronDaemon" entfernen.

Und anschließend neu kompelieren...

Hab dazu das ebuild tool verwendet und es hat einwandfrei funktioniert, alles läuft jetzt wie es soll  :Smile: 

gruß malon3

----------

