Jump to content

[Resolvido]Dúdivas com envio de e-mails, com função mail()


softklin

Recommended Posts

Boas!

É o seguinte, eu gostava de enviar mails a partir do meu PC através de PHP, mas estou a ver que a tarefa está complicada, porque não consegui enviar para o meu endereço no hotmail, e no endereço do GMail, marcou a mensagem como spam... 😕

Bem, então o que pretendia era usar a minha conta do gmail para enviar o mail, mas com o PHP... Há alguma forma de contornar este problema? Em última nota, eu pretendo mesmo enviar o mail a partir da minha máquina.

Obrigado desde já  😉

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Obrigado pela respota, pedrotuga.

Porém, experimentei o seguinte código, mas não consegui por a funcionar:

<?php
require("class.phpmailer.php");

$mail = new phpmailer();
$mail->From     = "xxx@hotmail.com";
$mail->FromName = "Eu";
$mail->Subject  = "msg de teste";

//dados de smtp
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true;
$mail->Username = "<nome do gmail>";
$mail->Password = "<pass do gmail>";
$mail->Host     = "smtp.gmail.com";
$mail->Port     = 587;

//dados envio
$mail->AddAddress("xxx@hotmail.com","Andre Silva");
$mail->AddAddress("xxx@gmail.com","Andre Silva");
$mail->Mailer   = "smtp";

//envia o mail
if(!$mail->Send())
{
   echo "There was an error sending the message";
   exit;
}

echo "Message was sent successfully";
?>

Sabes se falta alguma coisa ou assim, dá-me o erro do "There was an error..."

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Por acaso não tinha passado por essa página, porque me estava a basear nas instruções do meu cliente mail... mas só tinha posto o username, de qualquer maneira serviu... Agora já dá outro erro, que é este:

Warning: fsockopen(): unable to connect to smtp.gmail.com:587 (Uma tentativa de

ligação falhou porque o componente ligado não respondeu correctamente após um pe

ríodo de tempo, ou a ligação estabelecida falhou porque o anfitrião ligado não r

espondeu.

) in C:\Documents and Settings\Andre Silva\Ambiente de trabalho\class.smtp.php o

n line 105

There was an error sending the message

Será por causa do SSL? Tentei ver o código, mas não encontrei nada que falasse sobre o ssl...

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Bem, eu tentei de duas maneiras:

1) alterando esta linha:

$mail->Host     = "smtp.gmail.com";

para

$mail->Host     = "ssl://smtp.gmail.com";

e dá este erro:

Warning: fsockopen() expects parameter 2 to be long, string given in C:\Document

s and Settings\Andre Silva\Ambiente de trabalho\class.smtp.php on line 107

There was an error sending the message

2) alterando a função em si no class.smtp.php (sem a alteração anterior)

        #connect to the smtp server
        $this->smtp_conn = fsockopen($host,    # the host of the server
                                     $port,    # the port to use
                                     $errno,   # error number if any
                                     $errstr,  # error message if any
                                     $tval);   # give up after ? secs

para

        #connect to the smtp server
        $this->smtp_conn = fsockopen("ssl://".$host,    # the host of the server
                                     $port,    # the port to use
                                     $errno,   # error number if any
                                     $errstr,  # error message if any
                                     $tval);   # give up after ? secs

e dá o mesmo erro...

A solução de colocar a linha

if($this->Protocol) $host = $this->Protocol."://".$host; 

também não funciona... Até porque estive a ver a classe, e não vi essa propriedade... 😕

Entretanto estou a tentar mudar também outros valores, como portas e outros.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Tentei agora pela porta 465 e deu-me isto:

Warning: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Unable to f

ind the socket transport "ssl" - did you forget to enable it when you configured

PHP?) in C:\Documents and Settings\Andre Silva\Ambiente de trabalho\class.smtp.

php on line 107

There was an error sending the message

Eu instalei o WAMP, que já vem com o Apache, PHP, etc... não mexi na configuação, está tudo como default...

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Activei o php_openssl e copiei o ficheiro libeay32.dll para o c:\windows... depois reiniciei o servidor web, mas o erro persiste...

Warning: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Unable to f

ind the socket transport "ssl" - did you forget to enable it when you configured

PHP?) in C:\Documents and Settings\Andre Silva\Ambiente de trabalho\class.smtp.

php on line 107

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Já deu  😉

Eu pensei que apenas era necessário activar a extensão pelo menu, mas deve ter havido algum problema, e então segui o conselho de activar pelo php.ini

Message sent sucessfully

Obrigado  😕

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

  • 3 years later...

Olá  😁

Consegui implementar o teu código mas não estou a conseguir compreender onde posso colocar um corpo de mensagem para enviar com o email.

Onde posso adicionar isso??

 

======================================================================================

:wallbash:

Não sei o que se passou mas agora acontece um erro:

Deprecated: Function eregi() is deprecated in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\JOGO Projectofinal\Nova pasta\MAils\TESTAR\class.phpmailer.php on line 592

Ainda não consegui detectar porquê..

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.