Erro: Could not execute: /usr/sbin/sendmail -t -i [Resolvido]


(Jonatan Santana) #1

Não consigo enviar e-mails com phpMailer e nem a função mail().

Sempre que tento recebo esta mensagem: Erro: Could not execute: /usr/sbin/sendmail -t -i

As configs de SMTP e envio estão todas ok...

O que poderia ser?


(Luan Maik) #2

Já tive muitos problemas com o phpMailer, usando a mesma hospedagem funcionava em alguns sites, mas em outros não, as vezes funcionava com o SMTPAuth, as vezes não. Depois de um tempo acabei migrando para o servidor do Google Cloud e como nele não é possível enviar emails pelo servidor, acabei utilizando uma API e nunca mais tive dor de cabeça, fora que a API envia o email MUUUUUITO mais rápido que o phpMailer que as vezes parecia dar uma engasgada.

Eu utilizo a API do Mailjet https://www.mailjet.com:

use Mailjet\Client;
use Mailjet\Resources;

//Instancia a API com os códigos gerados no cadastro do Mailjet
$mailJet = new Client(minhaApiKey, minhaApiSecret);

//Cria os parâmetros do email
$body = [
    'FromEmail' =>  "emailCadastradoNoPainelDoMailJetComoRemetente@email.com",
    'FromName' =>   "Nome do remetente",
    'Subject' =>    "Assunto do email",
    'Text-part' =>  "Email enviado através do site do X",
    'Html-part' =>  "<b>Mensagem do email</b>",
    'Recipients' => [
                        [
                            'Email' => "edestinatario1@email.com",
                            'Name' => "Nome do Destinatario"
                        ],
                        [
                            'Email' => "edestinatario2@email.com",
                            'Name' => "Nome do Destinatario"
                        ],
                        [
                            'Email' => "edestinatario3@email.com",
                            'Name' => "Nome do Destinatario"
                        ]
                    ]
];

//Envia o email
$response = $mailJet->post(Resources::$Email, ['body' => $body]);

//Verifica se houve erro no envio
if ($response->success()){
  echo 'ERRO ao enviar o email';
}

O Resources::$Email informa que o recurso da API que irá utilizar é o de envio de email, pois vc pode usar outros tipos de Resources, como por exemplo, retornar a lista dos emails que foram visualizados pelo destinatario.


(Luan Maik) #3

Se preferir usar o phpMailer mesmo, poste seu código para analisarmos.


(Jonatan Santana) #4

Obrigado. Consegui resolver!