ubuntu发送使用sendmail发送邮件

一,安装邮件传输代理程序
sudo apt-get install sendmail  
sudo apt-get install sendmail-cf


二, ubuntu下最常使用的是mail功能,需要安装mailutils

sudo apt-get install mailutils



还有几个可选包:

squirrelmail  # 提供webmail
spamassassin  # 提供邮件过滤
mailman  # 提供邮件列表支持
dovecot  # 提供IMAP和POP接收邮件服务器守护进程

测试是否安装成功:
ps aux |grep sendmail

如果出现类似:

root     14264  0.0  0.5 100700  2788 ?        Ss   14:43   0:00 sendmail: MTA: accepting connections
root     14602  0.0  0.1  11740   940 pts/1    S+   15:29   0:00 grep --color=auto sendmail

sendmail安装成功。


三,配置

sendmail默认是本机用户发送给本机,所以需要修改可以发送到整个Internet:

修改sendmail配置宏文件,路径为/etc/mail/sendmail.mc

找到:

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl

Addr=127.0.0.1修改为Addr=0.0.0.0,意思是可以连接到任何服务器。

保存修改的文件,下面备份配置文件:
cd /etc/mail
mv sendmail.cf sendmail.cf~

然后生成新的配置文件:
m4 sendmail.mc > sendmail.cf

此处如果报错

*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE() should be before MAILER()
解决办法:
修改sendmail.mc最后几行
vi /etc/mail/sendmail.mc
将文档中的
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl
放到文档最后

四,重启sendmail
service sendmail restart
查看下:
netstat -tlunp | grep 25
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN  


五,发邮件


echo "正文!" | mail -s 标题 [email protected]



 注意有可能邮件被发送成垃圾邮件了,去垃圾邮件找


你可能感兴趣的:(linux,ubuntu)