Ir ao conteúdo

Enviar email da máquina local (localhost) com PHP


Rique

Posts recomendados

Postado

Olá pessoal.

Estou tentando enviar um email pelo localhost mas não estou conseguindo. Já pesquisei na internet mas ainda não consegui enviar. Tem que configurar um servidor de email antes? A função mail do PHP não está funcionando também. Como faço então para enviar um email pelo localhost? Abaixo estão os códigos das páginas que eu quero enviar o email:

form_email.php

<!-- Nome do arquivo: form_email.php -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Enviar formulário através do email</title>

</head>

<body>

<form id="form1" name="form1" method="post" action="enviaemail.php">

<p>Nome:

<input type="text" name="usernome" id="usernome" />

</p>

<p>Assunto:

<input type="text" name="assunto" id="assunto" />

</p>

<p>Mensagem:<br />

<textarea name="msg" id="msg" cols="45" rows="5"></textarea>

</p>

<p>

<input type="submit" name="enviar" id="enviar" value="Enviar" />

</p>

</form>

</body>

</html>

enviaemail.php:

<?php

/* Nome do arquivo: enviaemail.php */

$destinatario = '[email protected]';

$assunto = $_POST['assunto'];

$msg = $_POST['msg'];

$header = 'From: Teste01';

mail($destinatario, $assunto, $msg, $header);

echo "mensagem enviada para $destinatario <br>";

echo "Mensagem:<br>";

echo "$msg<br>";

?>

A mensagem de erro que dá é a seguinte:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\testephp01\enviaemail1.php on line 8

Postado

Primeiro você tem que configurar o servidor SMTP

Nota: Para o envio de correio através de PHP é necessário que este tenha uma correta configuração.

Se a nossa web está num servidor de um provedor de hosting provavelmente já tenham configurado o PHP para o envio de mails. Se estamos a trabalhar desde um servidor próprio, temos de configurar PHP.

PHP configura-se editando o ficheiro php.ini onde devemos especificar dados como o servidor de correio de saída que deve utilizar PHP para transferir as mensagens.

Dentro do php.ini, devemos procurar o epigrafe [mail function]. Dependendo do nosso sistema deveremos configura-lo de uma maneira ou de outra.

Em sistemas Windows encontraremos o php.ini no directório windows ou dentro deste, no subdirectório system32 ou similar. Neste sistema deveremos indicar o domínio do servidor de smtp, algo parecido a smtp.meudominio.com. Se é o PC local o que faz de servidor, poderemos por "localhost" como máquina que enviará o correio. Também podemos especificar o endereço desde donde queremos que pareça que se envia a mensagem no caso de que não se indique outra durante o envio.

Fonte: http://www.codigofonte.net/dicas/php/175_enviando-email-pelo-php-com-o-mail

Postado

Como já falei já tentei mandar o email pelo localhost com a função mail(). Os códigos estão acima. Não estou conseguindo. Mas tem algo no site nesse link que eu achei interessante:

Em sistemas Windows encontraremos o php.ini no directório windows ou dentro deste, no subdirectório system32 ou similar. Neste sistema deveremos indicar o domínio do servidor de smtp, algo parecido a smtp.meudominio.com. Se é o PC local o que faz de servidor, poderemos por "localhost" como máquina que enviará o correio. Também podemos especificar o endereço desde donde queremos que pareça que se envia a mensagem no caso de que não se indique outra durante o envio.

O meu arquivo php.ini está no diretório "C:\xampp\php". Parece que eu preciso configurar um seridor SMTP. Como faço isso?

  • Moderador
Postado
o php.ini só suporta o nome do servidor e a porta (nao suporta login e senha)

se você quer usar um servidor com autenticação(ex: gmail e todos que eu conheco) recomendo você usar a classe phpmailer

exato, use a classe phpmailer e nao se esqueça de verificar no php.ini se nas linhas de extensions está habilitado o openssl porque se você for fazer autenticaçao pelo gmail... você irá precisar

  • 3 meses depois...
Postado

Valeu pessoal!

Desculpem a demora pra responder. Tive problemas que me impediram de responder sem demora. Muito obrigado pelas rápidas respostas.

Decidi fazer utilizando a própria função mail() do PHP, já que funciona perfeitamente desde que a página esteja no servidor de hospedagem. Abraços.

  • Membro VIP
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...