How to send HTML email using linux command line

前端 未结 11 2091
无人共我
无人共我 2020-11-28 04:29

I need to send email with html format. I have only linux command line and command \"mail\".

Currently have used:

echo \"To: address@example.com\" >         


        
11条回答
  •  我在风中等你
    2020-11-28 04:34

    I was struggling with similar problem (with mail) in one of my git's post_receive hooks and finally I found out, that sendmail actually works better for that kind of things, especially if you know a bit of how e-mails are constructed (and it seems like you know). I know this answer comes very late, but maybe it will be of some use to others too. I made use of heredoc operator and use of the feature, that it expands variables, so it can also run inlined scripts. Just check this out (bash script):

    #!/bin/bash
    recipients=(
        'john@example.com'
        'marry@not-so-an.example.com'
    #   'naah@not.this.one'
    );
    sender='highly-automated-reporter@example.com';
    subject='Oh, who really cares, seriously...';
    sendmail -t <<-MAIL
        From: ${sender}
        `for r in "${recipients[@]}"; do echo "To: ${r}"; done;`
        Subject: ${subject}
        Content-Type: text/html; charset=UTF-8
    
        
        

    Ladies and gents, here comes the report!

    `mysql -u ***** -p***** -H -e "SELECT * FROM users LIMIT 20"`
    MAIL

    Note of backticks in the MAIL part to generate some output and remember, that <<- operator strips only tabs (not spaces) from the beginning of lines, so in that case copy-paste will not work (you need to replace indentation with proper tabs). Or use << operator and make no indentation at all. Hope this will help someone. Of course you can use backticks outside o MAIL part and save the output into some variable, that you can later use in the MAIL part — matter of taste and readability. And I know, #!/bin/bash does not always work on every system.

提交回复
热议问题