银河麒麟系统默认无外发邮件能力,需安装heirloom-mailx并配置SMTP;以QQ邮箱为例,须编辑/etc/mail.rc设置from、smtp、smtp-auth-user、smtp-auth-password(16位授权码)和smtp-auth,且chmod 600该文件后方可发送测试邮件。

银河麒麟系统(基于Linux)默认未配置外发邮件能力,直接执行mail -s "test" user@example.com会静默失败或卡住——因为系统调用的是本地MTA(如postfix),而云环境和桌面版通常既没启用服务,也没开通25端口,更不支持SMTP认证。
确认当前mail命令实际指向哪个程序
执行ls -l $(which mail),查看软链接目标。银河麒麟V10 SP1及之后版本默认使用heirloom-mailx,而非传统bsd-mailx或mailutils;若显示指向/usr/bin/mailx,说明已具备SMTP配置能力,可继续;若指向/bin/mail且报错command not found或no MTA installed,需先安装mailx:
sudo apt-get install heirloom-mailx(适用于Kylin V10基于Debian的版本)或sudo yum install mailx(适用于Kylin V10基于CentOS/RHEL的版本)。
配置QQ邮箱SMTP(推荐入门首选)
方法一:全局配置(所有用户生效,需root权限)
编辑/etc/mail.rc:sudo nano /etc/mail.rc
在文件末尾追加以下五行(【from与smtp-auth-user必须完全一致,含大小写和@qq.com后缀】):
set from=yourname@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=yourname@qq.com
set smtp-auth-password=your_16bit_app_password
set smtp-auth=login
【smtp-auth-password必须是QQ邮箱“账户设置→POP3/IMAP/SMTP/Exchange/CardDAV”中生成的16位授权码,不是登录密码】
保存后立即执行chmod 600 /etc/mail.rc——否则mailx会拒绝读取密码行。
发送测试邮件验证配置
第一步:准备正文内容,避免空邮件被拒收
echo "银河麒麟命令行邮件测试成功 $(date)" > /tmp/testmail.txt
第二步:执行发送命令
mail -s "【Kylin测试】$(date +%H:%M)" target@example.com
第三步:检查是否返回Sent message提示,同时立刻查看目标邮箱收件箱及垃圾邮件文件夹——【QQ邮箱对非腾讯域名发件人常自动归入“订阅邮件”或“其他”文件夹,而非主收件箱】
若无回显也无报错,但收不到邮件,请立即执行tail -n 20 /var/log/mail.log(或/var/log/maillog)查找SSL handshake failed或Authentication failed关键词。
处理常见连接失败
方法一:强制忽略SSL证书验证(临时调试用)
在/etc/mail.rc已有配置下方追加两行:
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
方法二:验证SMTP端口连通性
执行nc -zv smtp.qq.com 465,若返回succeeded表示网络层通畅;若超时,说明防火墙或系统策略拦截——银河麒麟桌面版默认开启firewalld,需运行sudo firewall-cmd --permanent --add-port=465/tcp && sudo firewall-cmd --reload放行。
方法三:换用Gmail配置(仅限已开通两步验证的账号)
替换/etc/mail.rc中smtp相关行为:
set smtp=smtps://smtp.gmail.com:465
set smtp-auth-user=yourname@gmail.com
set smtp-auth-password=your_16digit_app_specific_password
set from=yourname@gmail.com

















