quando salvi il messaggio nel file di test codifica i caratteri speciali (tabulazione, ritorni a capo, etc) (forse basterebbe usare htmlentities) in maniera che non inserisce \ n (tutto attaccato,l'andata a capo) nel file e quindi non ti crea più righe per lo stesso record.

domanda idiota: ma se uno nel messaggio inserisce una pipe, succede un macello?