Ir para conteúdo

POWERED BY:

Arquivado

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

cassius_fpu

[Resolvido] Função mail()

Recommended Posts

Olá pessoal!

 

Estou com um servidor WEB Debian Etch com Apache 2 e PHP 4 instalado. Por algum motivo que desconheço a função mail() não está funcionando nele.

 

Fiz um formulário que usa a função mail() do PHP cujo qual testei em outro servidor e funcionou beleza.

 

Parece que por defult a função usa o Sendmail, certo?

 

Alguém pode me ajudar com um check-list para fazer a bendita função mail() funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... primeiro,

 

Baixa o php mailer aqui: http://phpmailer.codeworxtech.com/

 

ai cria uma arquivo de teste e da um include no class.phpmailer.php... segue um exemplo basico...

 

 

<?php
 include ("classes/class.phpmailer.php");
  

  $mail1 = new PHPMailer();

  $mail1->Mailer = "smtp";
  $mail1->Host = "mail.xxx.xxx.com";
  $mail1->SMTPAuth = true;
$mail1->Username = "xxx@xxx.com";
  $mail1->Password = "xxx";
  $mail1->From = ("RemetenteEmail@xxx.com.br");
  $mail1->FromName = "De:: Remetente Nome";
  $mail1->Timeout=30;
  $mail1->AddAddress($_REQUEST['emaildo destinatário']);
  $mail1->IsHTML(true);
  $mail1->Subject = "Assunto";
  $mail1->Body  = "Conteúdo do email";
  
  $exito1 = $mail1->Send();
  
  if (!$exito1)
	echo "não enviou";
	  else echo"enviou";
?>

 

 

 

Se ainda nao der certo.... tem algumas configurações do smtp no php.ini

 

[mail function]
; For Win32 only.
SMTP = smtp.smtpvalido.com
smtp_port = 25

; For Win32 only.
;sendmail_from = fulano@fulano.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

 

Qndo se usa um host na web geralmente isso ja vem configurado....

Mas você pode tentar confereri com eles como esta a configuraçao..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai vai uma vídeo aula de como configurar o PHPMailer:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.videotutoriais.net/videos/phpma.../phpmailer.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... primeiro,

 

Baixa o php mailer aqui: http://phpmailer.codeworxtech.com/

 

ai cria uma arquivo de teste e da um include no class.phpmailer.php... segue um exemplo basico...

 

 

 <?php
  include ("classes/class.phpmailer.php");
   
 
   $mail1 = new PHPMailer();
 
   $mail1->Mailer = "smtp";
   $mail1->Host = "mail.xxx.xxx.com";
   $mail1->SMTPAuth = true;
 $mail1->Username = "xxx@xxx.com";
   $mail1->Password = "xxx";
   $mail1->From = ("RemetenteEmail@xxx.com.br");
   $mail1->FromName = "De:: Remetente Nome";
   $mail1->Timeout=30;
   $mail1->AddAddress($_REQUEST['emaildo destinatário']);
   $mail1->IsHTML(true);
   $mail1->Subject = "Assunto";
   $mail1->Body  = "Conteúdo do email";
   
   $exito1 = $mail1->Send();
   
   if (!$exito1)
	 echo "não enviou";
	   else echo"enviou";
 ?>

 

 

 

Se ainda nao der certo.... tem algumas configurações do smtp no php.ini

 

[mail function]
; For Win32 only.
 SMTP = smtp.smtpvalido.com
 smtp_port = 25
 
; For Win32 only.
;sendmail_from = fulano@fulano.com
 
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
 
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

 

Qndo se usa um host na web geralmente isso ja vem configurado....

Mas você pode tentar confereri com eles como esta a configuraçao..

 

Ai vai uma vídeo aula de como configurar o PHPMailer:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.videotutoriais.net/videos/phpma.../phpmailer.html

Velhinhos, segui as dicas de você e meu script tá dando o seguinte erro:

 

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.gmail.com:465 in /var/www/logistica/classes/class.smtp.php on line 122

 

Não enviado! Motivo SMTP Error: Could not connect to SMTP host.

 

Faço o que agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho...

 

Lembrando que o smtp do gmail requer autenticação.. tem q colocar seu username e senha de lá..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho...

 

Lembrando que o smtp do gmail requer autenticação.. tem q colocar seu username e senha de lá..

Bicho, meu script ficou assim:

<?php 
include "classes/class.phpmailer.php";

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;

$mail->Username = "supercassius@gmail.com";
$mail->Password = "minhasenhagmail";

$mail->From = "supercassius@gmail.com";
$mail->FromName = "Cassius MG";

$mail->Subject = "Teste de envio com PHPMAiler";

$html = "<strong>Hello World</strong>";
$texto = "Hello PHPMailer!";

$mail->Body = $html;
$mail->AltBody = $texto;

$mail->AddAddress("cassius_mg@hotmail.com", "Cassius HOT");

if (!$mail->Send()){
	echo "Não enviado! Motivo ".$mail->ErrorInfo;
}else{
	echo "Mensagem enviada!";
}
?>

Fiz inclusive a alteração no php.ini e o erro persiste... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho...

 

Lembrando que o smtp do gmail requer autenticação.. tem q colocar seu username e senha de lá..

Bicho, meu script ficou assim:

<?php 
include "classes/class.phpmailer.php";

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;

$mail->Username = "supercassius@gmail.com";
$mail->Password = "minhasenhagmail";

$mail->From = "supercassius@gmail.com";
$mail->FromName = "Cassius MG";

$mail->Subject = "Teste de envio com PHPMAiler";

$html = "<strong>Hello World</strong>";
$texto = "Hello PHPMailer!";

$mail->Body = $html;
$mail->AltBody = $texto;

$mail->AddAddress("cassius_mg@hotmail.com", "Cassius HOT");

if (!$mail->Send()){
	echo "Não enviado! Motivo ".$mail->ErrorInfo;
}else{
	echo "Mensagem enviada!";
}
?>

Fiz inclusive a alteração no php.ini e o erro persiste... :(

 

 

ta..

por por padrao os servidores de smtp usam a porta 25 para envio,

O gmail usa SSL que utiliza a porta 465.., mas tambem utiliza a 587...

Coloca no php.ini a porta 587 e muda no script pra 587 tb...

 

se não der pra alterar a configuração do php.ini dá um

 

ini_set('smtp_port' , '587');

 

dentro do script..

 

vamo ver o q dá..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.