sendmail – 以非root用户身份从命令行发送邮件时出错

前端之家收集整理的这篇文章主要介绍了sendmail – 以非root用户身份从命令行发送邮件时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从命令行发送邮件作为CentOS上的非root用户.我正在使用以下命令,但收到错误
$echo test | mail -s "test" to@example.com -c cc@example.com
WARNING: RunAsUser for MSP ignored,check group ids (egid=102,want=51)
can not write to queue directory /var/spool/clientmqueue/ (RunAsGid=102,required=51): Permission denied

我已将用户添加到组51(smmtp),我可以cd和写入该目录作为用户.

为什么我收到错误

一些相关权限:

# ls -la  /var/spool/clientmqueue/
total 8
drwxrwx---   2 smmsp smmsp 4096 Mar  8 14:25 .
drwxr-xr-x. 13 root  root  4096 Oct 21 15:09 ..

# ls -la /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21 Oct 21 15:09 /usr/sbin/sendmail -> /etc/alternatives/mta

# ls -la /etc/alternatives/mta
lrwxrwxrwx 1 root root 27 Oct 21 15:09 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail

# ls -la /usr/sbin/sendmail.sendmail
-rwxr-sr-x 1 root smmsp 833512 Nov 11  2010 /usr/sbin/sendmail.sendmail

解决方法

Sendmail expects的电子邮件地址是命令行中的最后一件事.如果您在电子邮件地址后面有任何参数,它会将它们解析为电子邮件地址.在上面的示例中,它试图将“-c”解析为电子邮件地址并给出无关的错误.
# BAD
$echo test | mail to@example.com -s "test"
# BAD
$echo test | mail to@example.com -c cc@example.com
# GOOD
$echo test | mail -s "test" -c cc@example.com to@example.com

TO电子邮件地址必须遵循CC电子邮件地址,电子邮件主题以及您需要传递给sendmail的任何其他参数.

猜你在找的Linux相关文章