Sto riscontrando un problema con un sistema NAGIOS che invia e-mail a un popolare servizio di posta elettronica a SMS. Il servizio email-to-SMS prende le e-mail con il testo nella Subject:
riga e le invia al numero di cellulare codificato nel To:
campo. Fin qui tutto bene. Purtroppo, sendmail (e postfix prima di esso) sembrano inserire un CRLF gratuito nella Subject:
riga (necessariamente lunga) , e questo sta causando il troncamento dei miei messaggi SMS nel CRLF se e solo se la Subject:
linea contiene uno o più due punti accanto al gratuito CRLF.
Sono fiducioso che i messaggi vengano creati correttamente, ma per essere sicuro, ecco io che sto creando un messaggio di prova completamente noddy con una lunga Subject:
linea:
echo "foo" | mail -s "1234567 101234567 201234567 301234567 401234567 501234567 601234567 701234567 801234567 90123456789" reaper@teaparty.net
Nota che non ci sono due punti in più in questa Subject:
linea; tutto quello che sto facendo qui è mostrare che un CRLF extra è inserito sul filo. Ecco il risultato di 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 r@teaparty.net..
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
A metà circa (contrassegnato in grassetto + corsivo), tra il 501234567
e il 601234567
nell'intestazione originale Subject:
, è possibile vedere un CRLF inserito ( 0x0d 0x0a
, sul dump esadecimale ..
sul lato sinistro, sul testo normale sul lato destro).
L'MTA ricevente sembra felice di post-processarlo e quando guardo la posta memorizzata su disco alla fine della ricezione, vedo solo un LF (0x0a) nell'oggetto: riga e la riga viene analizzata correttamente e nella sua per intero, ad es alpine
. Tuttavia, il CRLF è lì sul filo e tra me e le (eccellenti) persone di supporto da e-mail a SMS, abbiamo stabilito che queste sono le cause del problema.
Quindi la mia domanda è: è lecito per un MTA inserire un CRLF gratuito sul filo?
Se lo è, e posso provarlo, allora è il problema della casa da e-mail a SMS, perché sono intolleranti. Se non lo è, o lo è, ma non posso provarlo, allora diventa il mio problema, quindi una risposta con riferimenti sarebbe molto utile.
Modifica : ora posso chiarire che il servizio e-mail-SMS in questione è kapow . Una volta che questo problema è stato spiegato a loro, hanno capito, hanno lavorato con me per sviluppare e testare una correzione e hanno implementato la correzione. Le mie lunghe righe dell'oggetto con i due punti ora vengono trasmesse correttamente agli SMS. Normalmente non faccio trombe su singole compagnie, specialmente su SF, ma ho ritenuto degno di nota che Kapow ha fatto la cosa giusta. (Dichiarazione di non responsabilità: non ho alcun collegamento con kapow se non come cliente pagante che è felice del modo in cui ha affrontato il suo problema.)