Linux mail 发送外部邮件

mail命令是LINUX下一个非常轻巧的交互式的命令行邮件客户端,基于Berkeley Mail 8.1,提供MIME, IMAP, POP3, SMTP和S/MIME等扩展。

mail默认是调用本机MTA发送邮件的,需要在本机上安装sendmail或postfix。

支持SMTP,有关SMTP的参数都是在/etc/mail.rc里设置。
        关于SMTP的设置也就那么几个,具体如下:
        from: 当别人收到邮件时显示的发件人。默认是"当前用户id"@"主机名",这样发出去,会被邮件服务器当成垃圾邮件,无法回复邮件。
        smtp: 指定别人家的服务器地址。
        smtp-auth: 指定SMTP的认证方式。如果你不设置的话,默认是LOGIN方式,当然你可以根据需要改成CRAM-MD5或PLAIN方式。
        smtp-auth-user: 指定用户名。注意用户名为@前面的部分
        smtp-auth-password: 指定密码。

用QQ的邮箱假设一下。
        把以下这段设置加在/etc/mail.rc里。
        set [email protected]
        set smtp=smtp.qq.com
        set smtp-auth-user=12345678
        set smtp-auth-password=1234xxxx

这样你就可以发外部的邮件了。而且我测试不用重启服务。

mail -s "hello" [email protected]

例如上面的命令就是想[email protected]的邮箱中发送了一封邮件,而且它收到的邮件显示是来自[email protected]的。

但这时你还想给root管理员发一个内部的邮件就会有以下错误发生了

smtp-server: 501 Bad address syntax

要想发内部邮件请添加 -n 参数,就是不使用当前/etc/mail.rc的配置

mail -n -s "hello root" root < hell.txt

这样你就可以随意发送外部或内部邮件了



你可能感兴趣的:(linux)