The robustness principle suggests that should send as correct of data as you can. The mail clients are also following it by accepting things that are not always properly formatted. That isn't an excuse not to format your data correctly.
This is most famously described in RFC 791 which defines the IP in TCP/IP.
In general, an implementation must be conservative in its sending behavior, and liberal in its receiving behavior
RFC 1122 (Requirements for Internet Hosts -- Communication Layers) further clarifies this in section 1.2.2.
RFC 3117 (On the Design of Application Protocols) describes some issues when programmers don't follow a robust protocol practice. It concludes with:
Accordingly, explicit consistency checks in a protocol are very useful, even if they impose implementation overhead.
Write your code following the standard as closely as possible. Don't take shortcuts because they work on the implementations you have tested on, because someday you will find an implementation that it doesn't work on.