Ich habe ein Problem mit einem NAGIOS-System, das E-Mails an einen beliebten E-Mail-zu-SMS-Dienst sendet. Der E-Mail-zu-SMS-Dienst nimmt E-Mails mit Text in der Subject:
Zeile entgegen und sendet sie an die im To:
Feld verschlüsselte Mobiltelefonnummer . So weit, ist es gut. Leider scheint sendmail (und postfix davor) eine unbegründete CRLF in die (unbedingt lange) Subject:
Zeile einzufügen , und dies führt dazu, dass meine SMS-Nachrichten genau dann an der CRLF abgeschnitten werden, wenn die Subject:
Zeile einen oder mehrere Doppelpunkte nach der unbegründeten enthält CRLF.
Ich bin zuversichtlich, dass die Nachrichten korrekt erstellt werden, aber um sicherzugehen, erstelle ich hier eine völlig unklare Testnachricht für mich selbst mit einer langen Subject:
Schlange:
echo "foo" | mail -s "1234567 101234567 201234567 301234567 401234567 501234567 601234567 701234567 801234567 90123456789" [email protected]
Beachten Sie, dass diese Subject:
Zeile keinen zusätzlichen Doppelpunkt enthält . Alles, was ich hier mache, ist zu zeigen, dass eine zusätzliche CRLF in den Draht eingefügt ist. Hier ist das Ergebnis von sudo ngrep -x port 25
:
44 61 74 65 3a 20 46 72 69 2c 20 33 31 20 4d 61 Date: Fri, 31 Ma
79 20 32 30 31 33 20 31 30 3a 34 33 3a 35 35 20 y 2013 10:43:55
2b 30 31 30 30 0d 0a 54 6f 3a 20 72 65 61 70 65 +0100..To: reape
72 40 74 65 61 70 61 72 74 79 2e 6e 65 74 0d 0a [email protected]..
53 75 62 6a 65 63 74 3a 20 31 32 33 34 35 36 37 Subject: 1234567
20 31 30 31 32 33 34 35 36 37 20 32 30 31 32 33 101234567 20123
34 35 36 37 20 33 30 31 32 33 34 35 36 37 20 34 4567 301234567 4
30 31 32 33 34 35 36 37 20 35 30 31 32 33 34 35 01234567 5012345
36 37 0d 0a 20 36 30 31 32 33 34 35 36 37 20 37 67.. 601234567 7
30 31 32 33 34 35 36 37 20 38 30 31 32 33 34 35 01234567 8012345
36 37 20 39 30 31 32 33 34 35 36 37 38 39 0d 0a 67 90123456789..
55 73 65 72 2d 41 67 65 6e 74 3a 20 48 65 69 72 User-Agent: Heir
6c 6f 6f 6d 20 6d 61 69 6c 78 20 31 32 2e 34 20 loom mailx 12.4
37 2f 32 39 2f 30 38 0d 0a 4d 49 4d 45 2d 56 65 7/29/08..MIME-Ve
72 73 69 6f 6e 3a 20 31 2e 30 0d 0a 43 6f 6e 74 rsion: 1.0..Cont
65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 ent-Type: text/p
6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 75 73 lain; charset=us
Etwa auf halber Strecke (fett + kursiv markiert) zwischen dem 501234567
und dem 601234567
in der ursprünglichen Subject:
Kopfzeile wird eine CRLF eingefügt ( 0x0d 0x0a
links im Hex-Dump ..
rechts im Klartext).
Der empfangende MTA scheint dies gerne nachzubearbeiten, und wenn ich mir die auf dem Datenträger gespeicherte Mail am empfangenden Ende ansehe, sehe ich nur eine LF (0x0a) in der Betreffzeile, und die Zeile wird korrekt und in ihrer syntaktischen Form analysiert Vollständigkeit von zB alpine
. Trotzdem ist die CRLF auf dem Draht und zwischen mir und den (ausgezeichneten) Mitarbeitern des E-Mail-zu-SMS-Supports haben wir festgestellt, dass dies die Ursache des Problems ist.
Meine Frage lautet also: Ist es zulässig, dass ein MTA eine kostenlose CRLF in die Leitung einfügt?
Wenn es so ist, und ich kann es beweisen, dann ist es das Problem des E-Mail-zu-SMS-Hauses, weil es intolerant ist. Wenn dies nicht der Fall ist oder ich es nicht beweisen kann, wird es zu meinem Problem. Daher wäre eine Antwort mit Referenzen am nützlichsten.
Edit : Ich kann jetzt sauber kommen, dass der fragliche Email-to-SMS-Dienst kapow ist . Nachdem ihnen dieses Problem erklärt worden war, bekamen sie es, arbeiteten mit mir zusammen, um ein Update zu entwickeln und zu testen, und stellten das Update bereit. Meine langen Betreffzeilen mit Doppelpunkten werden jetzt korrekt in SMS weitergeleitet. Normalerweise trompete ich keine einzelnen Unternehmen, besonders nicht bei SF, aber ich fand es bemerkenswert, dass kapow das Richtige tat. (Haftungsausschluss: Ich habe keine Verbindung zu kapow, außer als zahlender Kunde, der sich über die Art und Weise freut, wie er mit seinem Problem umgegangen ist.)
Der Sendmail- Server (SendMail) unterwirft Zeilenlängenbeschränkungen, die jedoch viel höher sind (990 Byte oder mehr für SMTP-Mailer).
SendMail! = SendEmail
Soweit ich weiß, verwendet Nagios standardmäßig den SendEmail- Client , um E-Mails zu senden. Es scheint, dass der von Nagios verwendete E-Mail-Client der Länge des E-Mail-Headers / der Betreffzeile so "harte" Grenzen setzt.
Überprüfen und melden Sie den in der
commands.cfg
Konfigurationsdatei konfigurierten E-Mail-Client .(
notify-host-by-email
undnotify-service-by-email
Einstellungen).quelle
L=
/F=L
-Parametern und stimme Ihnen zu, dass dies nicht das Problem ist. Mein NAGIOS sendet nur mitecho "" | mail -s "$VARIABLE$ $ANOTHERVAR$
"- aber in jedem Fall ist das Problem tiefer, weshalb ich oben das einfachemail
Beispiel zitiert habe -, um NAGIOS aus dem Bild zu nehmen.