我有几台机器以前运行的是 Ubuntu 10.04。操作系统已更改为 RHEL7。更改后,程序像 一样cron
发送mail
邮件,[email protected]
而在 Ubuntu 上则为myuser@myhost
。我更喜欢 Ubuntu 的方式,不带后缀localdomain
,并希望我的 RedHat 安装以相同的方式工作。我该怎么做?
/etc/hosts
看起来像这样:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
1.2.3.4 myhost.example.com myhost
hostname -f
显示myhost.example.com
;hostname
显示myhost
(所有一切看起来都正常,与 Ubuntu 上的一样)。
答案1
修改发件人的程序是postfix。
- 默认情况下,crontab/mail 将使用用户名作为电子邮件发件人无域部分.因此发送者变成我的用户
- 由于 postfix 认为发件人没有域名,因此默认情况下 postfix 会将主机名附加为其域名。请参阅参数追加到 myorigin和肌源在
/etc/postfix/main.cf
。发送者成为我的用户@我的主机 - 因为
myhost
不是 FQDN。所以它将附加localdomain
在发件人中。请参阅参数附加点_mydomain和我的域名在/etc/postfix/main.cf
。发送者成为[电子邮件保护]
解决方案
append_dot_mydomain
在/etc/postfix/main.cf
become中设置参数不。- 重启 postfix
答案2
我不确定 crontab 从哪里获取发件人电子邮件地址的主机名部分,但您可以做的一件事是MAILFROM=
在 crontab 的最顶部添加一行,以便它从该MAILFROM=
行中提到的地址发送电子邮件。
[root@mercury01 ~]# crontab -l
[email protected]
*/10 * * * * sh /usr/local/src/disk-usage
[root@qa3app01 ~]#