Linux命令行下如何发送邮件

admin 提交于 星期五, 11/13/2015 - 19:17

Linux下发邮件也一直是我感到困惑的问题。我的理解是,只有在服务器本身配置了邮件服务(即这是一台邮件服务器),当前登录用户有对应的邮件账号,命令行下邮件相关的命令才有用。

很久以前我的一台Linux服务器好像不需要做复杂设置就能发邮件,以root@IP或服务器域名之类的方式发送,后来我忘记了怎样设置。加上各类邮箱对垃圾邮件的过滤条件变得越来越严格,那些没有通过认证的邮件服务器发出的邮件很可能是收不到的。

今天又尝试了一下,用mail命令一开始失败,但后来加了-r参数后就成功了。很可能是邮件接收方识别出发出该邮件的服务器域名和声称的邮件来源一致,所以成功了。所以,很可能只有有域名的Linux服务器才能发邮件。

 

echo 'hello body' | mail -s 'hello subject' -r root@host  receiver@email.com

上面的方法在香港一台Ubuntu 14.04的服务器上成功,但在大陆的一台Ubuntu 12.04服务器上却是不成功的。后来安装又卸载sendmail之后运行sendmailconfig就可以发去163的邮箱,但腾讯的企业邮箱收不到。

最近试了一下,安装sendmail也可以使用PHPMailer。

sudo apt-get install sendmail

不需要配置php.ini,默认就可以了。 

可能在/var/log/mail.err中见到以下错误:

unable to qualify my own domain name (iZ94nbe5qnyZ) -- using short name

这时,我们应该修改/etc/hosts文件,添加类似以下的域名解释:

10.169.122.216 iZ94nbe5qnyZ.localdomain iZ94nbe5qnyZ 

 

Mail命令的用法

mail command is most popular command to send emails from Linux terminal. Use few of below examples to send email.

[root@tecadmin ~]# mail -s "Test Subject" user@example.com < /dev/null

-s is used for defining subject for email.

To send email with attachment.

# mail -a /opt/backup.sql -s "Backup File" user@example.com < /dev/null

-a is used for attachments

Also we can add comma separated emails to send email to multiple recipients together.

# mail -s "Test Email"  user@example.com,user2@example.com < /dev/null

标签

评论

清了缓存之后就可以了,更新了下面的命令,看能不能显示HTML格式。

   

$cmd = "echo '$body' | mail -a 'From: Admin<admin@cto.eguidedog.net>' -a 'MIME-Version: 1.0' -a 'Content-Type: text/html' -s '$subject' myemail@163.com";
    shell_exec($cmd);

bug (未验证)

星期三, 03/22/2017 - 08:26

我为什么在多台centos服务器上输入发邮件命令后 也不提示错误 但就是接收不到

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • Web page addresses and email addresses turn into links automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"Drupal8"