关于sendmail发邮件出现由某某代发的解决方法
其实写这一篇文章是滥竽充数的,因为根本没有一个试验成功的方法。不过感觉大家的方法和思路还是对的,所以就先记录下来,也许是自己的系统有点bug吧,如果没有用人家的一键包的,可以自己尝试下,应该会有点思路,不保证可以哦,只是收集了网上的。
先来说一下情况,出现的可能是(由 root@localhost.localdomain 代发),这样的提醒。
1、更改hostname可以修改相应的localhost.localdomain为hostname。
2、如果不想改,可以通过在命令行发送的时候指定发件人地址
echo -e "To: xxxx@gmail.com" | sendmail -f user@XXX.com -t -i
或者
echo -e "To: xxxx@gmail.com\nFrom: user@XXX.com" | sendmail -t
那么收件箱显示的发件人是user@XXX.com
3、如果你是用php内置函数通过sendmail发送信件的话,可以在php.ini中修改:
sendmail_path = /usr/sbin/sendmail -fuser@XXX.com -t -i
注意-f和后面user@XXX.com中间没有空格。
上面出现root@localhost.localdomain中的root是这样解释的。sendmail发送邮件时,如果没有指定附加参数,默认它会把当前主机名作为邮件服务器、 以及命令它发邮件的Linux用户名作为发件者,加入到邮件头部信息。
如果不想修改网站程序,也可以通过设置php.ini来实现。在php.ini中设置sendmail_path为如下的形式:
sendmail_path = /usr/sbin/sendmail -t -i -f'user@XXX.com'
有网上的说,必须-f在前面,否则不生效,一直没有测试成功,所以也不确定。
另外大家可以搜一下"php_admin_value sendmail_path",似乎这个东西也可以设置,不知道是不是虚拟主机用的。
详细如下:
php-fpm配置
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f user@XXX.com //设置php mail发送
还有一个似乎是apache的虚拟主机设置,此处也可以设置sendmail_path。
将sendmail_path参数 在虚拟主机里面的设置:
ServerAdmin admin@XXX.com
DocumentRoot "F:/web/website/XXX/www/"
ServerName www.XXX.com
ErrorLog "logs/www.XXX.com-error.log"
CustomLog "logs/www.XXX.com-access.log" common
php_admin_value sendmail_path "F:/web/sendmail/sendmail.exe -t -i"
另外要注意的地方是sendmail_path只在unix下有效。不知道linux是不是有效?
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
:mrgreen: 我直接配置了postfix,改了php.ini。。
呵呵,应该也可以的哈
囧~ 我发现我看不懂这是啥东东了
其实结果是我没弄成,只在网上找到了些方法。你那网站是什么东西,破解?这是在做推广么
:arrow: 囧。我那是破解软件下载。。。。 ~~ :eek: 尼玛~~~ 我是Yusky。 推个毛。 那个站我从来木做过推广~懒的去推
呵呵,看头像是Yusky哈,但是留的主页是个破解软件下载嘛,嘿嘿。
额,没注意过,不折腾……
尼玛~~ 我发现只能5层回复~~ 太少了啊~~
我现在住要就搞这个站啊。 没事干
呵呵,果真蛋疼嘛
蛋了个疼。。。换个身份留言嘛~~ :idea: