Você configurou seu servidor para exigir autenticação quando o email é enviado usando o SMTP. No entanto, quando você está usando o mailx, você está ignorando o SMTP e injetando o email diretamente. O mesmo vale para o script php - ele não está usando o SMTP, ele está usando o agente de email local na máquina local. Normalmente, você quer que o agente possa enviar e-mails, já que é o programa usado, por exemplo, cron para enviar informações sobre problemas que ocorrem no servidor.
Tanto quanto eu sei, você não pode exigir autenticação de e-mails enviados usando sendmail / postdrop / mailx, mas pode restringir quem tem permissão para usá-lo, usando authorized_submit_users
. O padrão é "qualquer pessoa", você pode substituí-lo por uma lista de nome de usuário ou uma pesquisa. Então, se você quiser que o root possa enviar e-mails (o que certamente é recomendado!), Mas ninguém mais, a linha seria
authorized_submit_users = root
Há mais informações em os documentos postfix