RHEL(Oracle Linxu/CentOS)系統下,如果使用sendmail發送郵件,如果不特殊設置,一般發件箱地址為user@hostname,例如,hostname為DB-Server.localdomain,在root用戶下使用下麵命令發送一封郵件: [root@DB-Server ~]... ...
RHEL(Oracle Linxu/CentOS)系統下,如果使用sendmail發送郵件,如果不特殊設置,一般發件箱地址為user@hostname,例如,hostname為DB-Server.localdomain,在root用戶下使用下麵命令發送一封郵件:
[root@DB-Server ~]# hostname -f
DB-Server.localdomain
[root@DB-Server ~]# echo "hello,it is a test email from kerry" | mail -s "Hello,Welcome your test email" [email protected]
此時收件箱地址[email protected],那麼如何修改發件箱地址呢?
方法1:使用sendmail的參數f,在參數f後指定發件箱。
[root@DB-Server ~]# echo "hello,it is a test email from kerry" | mail -s "Hello,Welcome your test email" [email protected] -- -f [email protected]
此時測試,你就會發現發件箱地址為[email protected],當然這裡你可以對發件地址進行任意設置。這個是最好、最快捷的方法。
方法2:修改sendmail.cf配置文件
我們需要修改sendmail.mc中5個地方,如上截圖所示, dnl表示選項被註釋, 我們需要取消4處註釋,註釋掉一處地方
MASQUERADE_AS(domain.com)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(domain.com)dnl
dnl EXPOSED_USER(`root')dnl
MASQUERADE_AS(`mydba.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
MASQUERADE_DOMAIN(mydba.com)dnl
MAILER(smtp)dnl
dnl EXPOSED_USER(`root')dnl
[root@DB-Server ~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/mail/sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory
出現上面錯誤,是因為沒有安裝sendmail-cf組件,安裝了sendmail-cf組件後,就不會出現上面錯誤
[root@DB-Server tmp]# rpm -ivh sendmail-cf-8.13.8-8.el5.x86_64.rpm
warning: sendmail-cf-8.13.8-8.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:sendmail-cf ########################################### [100%]
[root@DB-Server tmp]#
[root@DB-Server mail]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
一般是配置/etc/mail/sendmail.mc文件,然後通過上面命令生成sendmail.cf文件,但是要註意,不要將之前的一些配置信息給覆蓋了,例如SMTP伺服器等。另外,重新生成配置文件後必須重啟sendmail服務,否則配置不會生效
[root@DB-Server mail]# service sendmail restart
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
此時在不指定發件人地址的時候,發件人地址為[email protected] 或 [email protected] 。 郵件首碼為當前用戶名.
3:修改主機名,主機名和sendmail的發送郵件有關
這個方法其實在實際環境中很少使用。畢竟修改主機名是一件非常麻煩的事情。
網上還有其它一些方法,但是我測試過多次都沒有成功,所以不在此羅列,有興趣的可以自行研究!