Hi @Stefan ,
Using the "escape sequences", as they're called, can sometimes be a bit tricky. Sometimes they work as one would think they should, but other times they need to be invoked differently. It's kind of like :Column vs Column(dt, #), or As Column(). They all reference columns, but there are some cases where one is better than another.
Anyway, you were wanting a specific example for the carriage return, here is one that works with a built in data table in JMP.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt = Data Table( "Big Class" );
tb=dt<<Get As Report();
Mail("myemail@address.com", "dt names", "The data is "||"\!n"||Eval(tb<<Get Text));
You don't have to have the extra concatenate || in there between "The data is " and !\n. You can instead write it as "The data is !\n" || Eval() and it'll work just the same. But, however you implement it, the !\n must be in quotations: "\!n" for it to be read correctly.
One note that might be the reason you're having problems is the host operating system. If you're working in OS vs Windows, then the carriage return is different: CR vs CR LF, respectively. If you're on a Mac, the "\!n" won't work. Instead, you should use "\!N" with a capital N. When you use that, it insert a line break appropriate for the host operating system.
Hope this helps!,
DS