Himalaya uses MML for composing emails. MML is a simple XML-based syntax that compiles to MIME messages.
An email message is a list of headers followed by a body, separated by a blank line:
From: sender@example.com To: recipient@example.com Subject: Hello World This is the message body.
Common headers:
From: Sender addressTo: Primary recipient(s)Cc: Carbon copy recipientsBcc: Blind carbon copy recipientsSubject: Message subjectReply-To: Address for replies (if different from From)In-Reply-To: Message ID being replied toTo: user@example.com To: John Doe <john@example.com> To: "John Doe" <john@example.com> To: user1@example.com, user2@example.com, "Jane" <jane@example.com>
Simple plain text email:
From: alice@localhost To: bob@localhost Subject: Plain Text Example Hello, this is a plain text email. No special formatting needed. Best, Alice
Alternative text/html parts:
From: alice@localhost To: bob@localhost Subject: Multipart Example <#multipart type=alternative> This is the plain text version. <#part type=text/html> <html><body><h1>This is the HTML version</h1></body></html> <#/multipart>
Attach a file:
From: alice@localhost To: bob@localhost Subject: With Attachment Here is the document you requested. <#part filename=/path/to/document.pdf><#/part>
Attachment with custom name:
<#part filename=/path/to/file.pdf name=report.pdf><#/part>
Multiple attachments:
<#part filename=/path/to/doc1.pdf><#/part> <#part filename=/path/to/doc2.pdf><#/part>
Embed an image inline:
From: alice@localhost To: bob@localhost Subject: Inline Image <#multipart type=related> <#part type=text/html> <html><body> <p>Check out this image:</p> <img src="cid:image1"> </body></html> <#part disposition=inline id=image1 filename=/path/to/image.png><#/part> <#/multipart>
From: alice@localhost To: bob@localhost Subject: Mixed Content <#multipart type=mixed> <#part type=text/plain> Please find the attached files. Best, Alice <#part filename=/path/to/file1.pdf><#/part> <#part filename=/path/to/file2.zip><#/part> <#/multipart>
<#multipart>Groups multiple parts together.
type=alternative: Different representations of same contenttype=mixed: Independent parts (text + attachments)type=related: Parts that reference each other (HTML + images)<#part>Defines a message part.
type=<mime-type>: Content type (e.g., text/html, application/pdf)filename=<path>: File to attachname=<name>: Display name for attachmentdisposition=inline: Display inline instead of as attachmentid=<cid>: Content ID for referencing in HTMLOpens your $EDITOR:
himalaya message write
himalaya message reply 42 himalaya message reply 42 --all # reply-all
himalaya message forward 42
cat message.txt | himalaya template send
himalaya message write \ -H "To:recipient@example.com" \ -H "Subject:Quick Message" \ "Message body here"
himalaya message export --full to inspect the raw MIME structure of received emails.