Mam problem z systemem NAGIOS wysyłającym wiadomości e-mail do popularnej usługi e-mail-SMS. Usługa e-mail-SMS pobiera wiadomości e-mail z tekstem w Subject:
linii i wysyła je na numer telefonu komórkowego zakodowany w To:
polu. Jak na razie dobrze. Niestety, sendmail (i Postfix przed nim) wydają się być wstawienie nieodpłatne CRLF do (niekoniecznie długich) Subject:
linii, a to powoduje moje wiadomości SMS mają być obcięte na CRLF wtedy i tylko wtedy, gdySubject:
linia zawiera jeden lub więcej średników przeszłości nieodpłatne CRLF.
Jestem przekonany, że wiadomości są tworzone poprawnie, ale dla pewności, oto ja stworzyłem dla siebie całkowicie testową wiadomość z długą Subject:
linią:
echo "foo" | mail -s "1234567 101234567 201234567 301234567 401234567 501234567 601234567 701234567 801234567 90123456789" [email protected]
Uwaga: w tym Subject:
wierszu nie ma dodatkowego dwukropka ; wszystko, co tu robię, to pokazanie, że dodatkowy CRLF jest wstawiony na drut. Oto wynik 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
O połowie drogi w dół (pogrubienie + kursywa), pomiędzy 501234567
oraz 601234567
w oryginalnym Subject:
nagłówku można zobaczyć CRLF wkładana ( 0x0d 0x0a
na lewy bok Hex Dump, ..
na prawej bocznej zwykłego tekstu).
Odbierający MTA wydaje się szczęśliwy, że może to przetworzyć, a kiedy patrzę na pocztę przechowywaną na dysku po stronie odbierającej, widzę tylko LF (0x0a) w wierszu Temat: i wiersz jest analizowany poprawnie i w jego całość, np alpine
. Niemniej jednak CRLF jest na linii i między mną a (świetnymi) osobami obsługującymi e-maile-SMS, ustaliliśmy, że to one są przyczyną problemu.
Moje pytanie brzmi zatem: czy MTA może wstawić nieuzasadniony CRLF na drut?
Jeśli tak, i mogę to udowodnić, to jest problem z domem wysyłającym e-maile na SMS, ponieważ są nietolerancyjni. Jeśli nie jest lub jest, ale nie mogę tego udowodnić, staje się to moim problemem, więc odpowiedź z referencjami byłaby najbardziej przydatna.
Edycja : Mogę teraz wyczyścić, że dana usługa e-mail-SMS to kapow . Po wyjaśnieniu im tego problemu, dostali go, pracowali ze mną, aby opracować i przetestować poprawkę oraz wdrożyli poprawkę. Moje długie linie tematyczne z dwukropkami są teraz poprawnie przekazywane do SMS-ów. Zwykle nie trąbię pojedynczych firm, szczególnie nie na SF, ale pomyślałem, że warto zauważyć, że kapow Did The Right Thing. (Oświadczenie: Nie mam żadnego związku z kapow, z wyjątkiem tego, że jestem płatnym klientem, który cieszy się z tego, jak poradzili sobie z jego problemem).
Serwer Sendmail (SendMail) nakłada limity długości linii, ale jest znacznie wyższy (990 bajtów lub więcej dla mailerów smtp).
SendMail! = SendEmail
Jak rozumiem, Nagios domyślnie używa klienta SendEmail do wysyłania wiadomości e-mail. Wygląda na to, że klient poczty e-mail, którego używasz w Nagios, nakłada takie „ostre” ograniczenia długości nagłówka / tematu wiadomości.
Sprawdź i zgłoś klienta poczty e-mail skonfigurowanego w
commands.cfg
pliku konfiguracyjnym.(
notify-host-by-email
inotify-service-by-email
ustawienia).źródło
L=
/F=L
i zgadzam się z tobą, że to nie jest problem. Mój NAGIOS wysyła tylko przy użyciuecho "" | mail -s "$VARIABLE$ $ANOTHERVAR$
„- ale w każdym razie problem jest głębszy niż to, dlatego zacytowałem prosty,mail
oparty na powyższym przykładzie przykład, aby usunąć NAGIOS ze zdjęcia.