Bobrinha 4 Denunciar post Postado Abril 26, 2015 Olá pessoal, estou com um problema que nunca vi nem passei por ele, normalmente uso o PHPMailer para envio de emails autenticados porém, não estou conseguindo enviar com outros emails pegando do formulario o email de destino veja como esta Config //DEFINE SERVIDOR DE E-MAIL////////////////////////// define('MAILUSER', 'email@meudominio.com'); define('MAILPASS', 'senha'); define('MAILPORT', '25'); define('MAILHOST', 'mail.meudominio.com'); função abaixo deveria enviar os emails para o email do usuario $this->Dados['email'] porem ao colocar esse valor da o seguinte erro Erro SMTP server error: Please turn on SMTP Authentication in your mail client, or login to the 550-IMAP/POP3 server before sending your message. nuvem14.minhahospedagem.com.br 550-(www.meusite.com) [000.000.000.00]:34737 is not permitted to relay through 550 this server without authentication. ) <php? public function Email() { $this->Dados['Assunto'] = "Avaliação da loja!"; $this->Dados['RemetenteNome'] = "Nome do Site"; $this->Dados['RemetenteEmail'] = MAILUSER; $this->Dados['DestinoNome'] = $this->Dados['nome']; $this->Dados['DestinoEmail'] = "email@dominio.com"; $this->Dados['Mensagem'] = "Olá Usurio Você ainda não avaliou o site não deixe de avaliar. " . "Sua opinião é muito importante para melhorar nosso site."; $Email = new Email; $Email->Enviar($this->Dados); if ($Email->getError()): Mensagem($Email->getError()[0], $Email->getError()[1]); endif; } ?> Classe Email <?php <?php require('PHPMailer/class.phpmailer.php'); class Email { private $Mail; private $Data; private $Assunto; private $Mensagem; private $RemetenteNome; private $RemetenteEmail; private $DestinoNome; private $DestinoEmail; private $Error; private $Result; function __construct() { $this->Mail = new PHPMailer; $this->Mail->Host = MAILHOST; $this->Mail->Port = MAILPORT; $this->Mail->Username = MAILUSER; $this->Mail->Password = MAILPASS; $this->Mail->CharSet = 'UTF-8'; } public function Enviar(array $Data) { $this->Data = $Data; $this->Clear(); $this->setMail(); $this->Config(); $this->sendMail(); } public function getResult() { return $this->Result; } public function getError() { return $this->Error; } private function Clear() { array_map('strip_tags', $this->Data); array_map('trim', $this->Data); } private function setMail() { $this->Assunto = $this->Data['Assunto']; $this->Mensagem = $this->Data['Mensagem']; $this->RemetenteNome = $this->Data['RemetenteNome']; $this->RemetenteEmail = $this->Data['RemetenteEmail']; $this->DestinoNome = $this->Data['DestinoNome']; $this->DestinoEmail = $this->Data['DestinoEmail']; $this->Data = null; $this->setMsg(); } private function setMsg() { $this->Mensagem = "{$this->Mensagem}<hr><small>Recebida em: " . date('d/m/Y H:i') . "</small>"; } private function Config() { //SMTP AUTH $this->Mail->IsSMTP(); $this->Mail->SMTPAuth = true; $this->Mail->IsHTML(); //REMETENTE E RETORNO $this->Mail->From = MAILUSER; $this->Mail->FromName = $this->RemetenteNome; $this->Mail->AddReplyTo($this->RemetenteEmail, $this->RemetenteNome); //ASSUNTO, MENSAGEM E DESTINO $this->Mail->Subject = $this->Assunto; $this->Mail->Body = $this->Mensagem; $this->Mail->AddAddress($this->DestinoEmail, $this->DestinoNome); } //Envia o e-mail! private function sendMail() { if ($this->Mail->Send()): $this->Result = true; else: $this->Result = false; endif; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Abril 26, 2015 Tenta adicionar antes da autenticação $this->Mail->SMTPAuth = true; E verifica os dados de autenticação se estão todos corretos. Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Abril 26, 2015 Ja verifiquei todos os dados corretos mais não entendo não consigo entender por que so funciona se colocar o email do proprio dominio vai normal mais com outros emails não ou seja os emails dos usuarios :upset: Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 26, 2015 Deixa ver se eu entendi. :wacko: Você quer que o phpmailer/seu_servidor, envie um e-mail autenticado, com remetente de terceiro, é isso? :o Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Abril 26, 2015 Sim amigo ao preencher um formulario quero que o usuario receba no email dele um email com um link, no entanto ao colocar o email de qualquer outro que não seja do proprio dominio não vai, ou seja é comum que em formularios de contato de cadastros etc o usuario que preenche receba em seu email uma mensagem enviada do site, é isso Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 27, 2015 Com email autenticado não é possivel, mesmo que envie, clientes de email, como outlook e gmail, marcaria o remetente como não confiável, e é spam na certa e sem opção de marcar como remetente confiavel. Sem autenticação vai de boa, ai você pode usar a porta 25, ou até mesmo a função mail() do php, pois é outra porta. Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Abril 27, 2015 Se é assim então o que utilizam para enviar por exemplo em varios sites que cadastro ao realizar cadastro eu recebo um email no meu email para ativar a conta como isso é feito? e alguns sites quando preencho um formulario recebo no meu email a confirmação de que entraram em contato em breve sem ser span? Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Abril 27, 2015 O e-mail enviado será sempre com o remetente da autenticação. Agora o destinatário pode ser qualquer um. Quando vc utiliza smtp não precisa utilizar email do servidor, pois pela autenticação ele acessa qualquer servidor externo desde que os dados estejam corretos. Você pode ter um domínio exemplo.com.br e enviar o e-mail de um gmail por exemplo. Qual servidor você usa? Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Abril 27, 2015 Obrigado a todos pela ajuda, na verdade o script estava certinho eu que por falta de atenção estava com a senha do email errado depois de revisar varias vezes consegui achar o erro que quase me deixou louco... Compartilhar este post Link para o post Compartilhar em outros sites