What you at least need are From:, To: and Subject:. It might be useful to add Date: and Message-Id. If you need to, set a Content-Type, but best is to send plain text. Nothing more is needed, and adding them won't make your email less likely to look like spam.
If the embedded system has no time- or date-keeping, then setting a
Date header will of course be impossible; no big deal, as OP's mail host should add one itself when absent. Similarly, there's little point setting a
Message-Id header, as (I presume) there will be no archiving/record-keeping of sent messages on the embedded system, so any generated ID will be meaningless. The only reason I can think of for setting one is if the ID is generated by a deterministic function (i.e. has no random element), so you can use it to later track the circumstances in which the message was composed and sent. Otherwise, again, the mail host will generate and add one if absent. I would call
Content-Type a must, as this will allow you to declare the character set of the text within the message. Otherwise, if your message is anything other than pure ASCII (which is what it will be assumed to be without this header), mail clients may not render the text properly.
One extra suggestion for another header is
Return-Path. If the mail account/address you're sending from is one that you may not wish to receive (or is not capable of receiving) any undeliverable bounces, you can set this header with an alternate address. For example, you may want to set this to your own address, so you know if the e-mails the embedded system is sending out aren't being delivered.