klasss 0 Denunciar post Postado Fevereiro 4, 2014 Boas,tenho aqui um problema que com o php sendemail. Necessito que sempre que as datas do meu formulario tejam a terminar (10 dias antes de terminar) seja enviado um email para varias pessoas a informar.Eu quando tento executar esse codigo apenas me aparece uma pagina em branco . Não me dá erro nenhum. Utilizo o Wamp e o Sendmail. Configurei como está nesta pagina:http://blog.techwheels.net/send-emai...sing-sendmail/Só não utilizo smtp_server=smtp.gmail.com <? include(conectar.php);$conn = @mysql_connect($local_serve,$usuario_serve,$senha_ serve,$banco_de_dados) or die ("O servidor não responde!");// conecta-se ao banco de dados$db = @mysql_select_db($banco_de_dados,$conn)or die ("Não foi possivel ligar-se a Base de Dados!");$sql = ("SELECT Nome, AlvaraValidade, AcidenteValidade, SeguroValidade, FinancasValidade, SocialValidade, RemuneracaoValidade, InstaladorValidade, MontadorValidade, MedicaValidade, ProjectistaValidade, GasValidade, RedesValidade, SoldadorValidade, MecanicoValidade, ClasSoldadorValidade, MaquinaValidade1, MaquinaValidade2, MaquinaValidade3, MaquinaTopoValidade FROM tb_eqipamentos, tb_detalhe_trabalhador, tb_trabalhador");$validade = mysql_query($sql);while($item = mysql_fetch_assoc($validade)){$to = 'mail@mail.pt';$subject = 'Testing sendmail.exe';$message = 'Hi, you just received an email using sendmail!';$headers = 'From: mail@imail.pt' . "\r\n" .'Reply-To: mail@mail.pt' . "\r\n" .'MIME-Version: 1.0' . "\r\n" .'Content-type: text/html; charset=iso-8859-1' . "\r\n" .'X-Mailer: PHP/' . phpversion();if(mail($to, $subject, $message, $headers))echo "Email sent";elseecho "Email sending failed";?> Será que alguem me consegue ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
masi 22 Denunciar post Postado Fevereiro 4, 2014 Olá klass, vou tentar te ajudar. Preciso que você confirme algumas coisas. Você está conseguindo enviar algum email sem o critério de datas? A variável $to está correta? Lembrando que pelo código você está tentando enviar um email para "mail@mail.pt". Simplifique o máximo possível, apenas para testar o funcionamento do script. Verifique se o display_errors do arquivo php.ini está ativo, caso esteja off, altere para on. Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 4, 2014 Por acaso ainda nao experimentei. Vou meter as datas como comentários e experimentar Meti mail@mail.pt para ocultar o meu email. display_errors = On PS: o resultado é o mesmo. A pagina fica em branco. Não dá nenhum tipo de mensagem. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 4, 2014 Verifique o funcionamento de seu servidor de email, tente mandar um email qualquer de seu localhost e veja se o mesmo dispara o email. Após fazer a configuração para display_errors = On reinicie o apache. Já mais utilize o "@" arroba para inibir erros ou notices do PHP, pois eles são de suma importância para lhe alertar sobre o funcionamento de seu sistema, retire-os. Ao invés de utilizar o comando: <? coloque a tag completa: <?php ?> pode ser por isso que sua página não está sendo executada, devido ao short open tag esta desativada. Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 4, 2014 Estou aqui para aprender tambem :) Depois de alterar o que disseste apareceram erros que fui corrigindo. Só que este ultimo não entendo.A ver se me conseguem ajudar. Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in $sql = ("SELECT Nome, AlvaraValidade, AcidenteValidade, SeguroValidade, FinancasValidade, SocialValidade, RemuneracaoValidade, InstaladorValidade, MontadorValidade, MedicaValidade, ProjectistaValidade, GasValidade, RedesValidade, SoldadorValidade, MecanicoValidade, ClasSoldadorValidade, MaquinaValidade1, MaquinaValidade2, MaquinaValidade3, MaquinaTopoValidade FROM tb_eqipamentos, tb_detalhe_trabalhador, tb_trabalhador"); $validade = mysql_query($sql); while($item = mysql_fetch_assoc($validade)){ Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Fevereiro 4, 2014 A query tem algum erro. $validade = mysql_query($sql)OR DIE(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 4, 2014 Troque: $validade = mysql_query($sql); por $validade = mysql_query($sql)or die(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 4, 2014 <?php $local_serve = "127.0.0.1"; // local do servidor $usuario_serve = "root"; // nome do usuario $senha_serve = ""; // senha $banco_de_dados = "GCD"; // nome do banco de dados $conn = mysql_connect($local_serve,$usuario_serve,$senha_serve,$banco_de_dados) or die ("O servidor não responde!"); //conecta-se ao banco de dados $db = mysql_select_db($banco_de_dados,$conn) or die ("Não foi possivel ligar-se a Base de Dados!"); $sql = ("SELECT Nome, AlvaraValidade, AcidenteValidade, SeguroValidade, FinancasValidade, SocialValidade, RemuneracaoValidade, InstaladorValidade, MontadorValidade, MedicaValidade, ProjectistaValidade, GasValidade, RedesValidade, SoldadorValidade, MecanicoValidade, ClasSoldadorValidade FROM tb_detalhe_trabalhador, tb_trabalhador"); $validade = mysql_query($sql)OR DIE(mysql_error());; while($item = mysql_fetch_assoc($validade)){ $to = 'jmail@mail.pt'; $subject = 'Testing sendmail.exe'; $message = 'Hi, you just received an email using sendmail!'; $headers = 'From: mail@imail.pt' . "\r\n" . 'Reply-To: mail@mail.pt' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if($item($to, $subject, $message, $headers)) echo "Email sent"; else echo "Email sending failed"; } ?> E volta-me a ficar a pagina em branco :s <?php $to = 'joao.leandro@itg.pt'; $subject = 'Testing sendmail.exe'; $message = 'Hi, you just received an email using sendmail!'; $headers = 'From: mail@imail.pt' . "\r\n" . 'Reply-To: mail@mail.pt' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if($to, $subject, $message, $headers) echo "Email sent"; else echo "Email sending failed"; //} ?> Experimentei assim e da-me um erro na linha do if Parse error: syntax error, unexpected ',' in Compartilhar este post Link para o post Compartilhar em outros sites
masi 22 Denunciar post Postado Fevereiro 4, 2014 if($to, $subject, $message, $headers) Altere por mail($to, $subject, $message, $headers) //Se eu não me engano tem um ; dps do parêntese. Testa ae echo "Email sent"; //else //echo "Email sending failed"; //} Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 4, 2014 Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()agr sim ja tenho erros Compartilhar este post Link para o post Compartilhar em outros sites
masi 22 Denunciar post Postado Fevereiro 4, 2014 Agora é só configurar o servidor de email. No próprio erro está dizendo "Verifique sua SMTP e SMTP_port. Configurações in php.oni ou use ini_set()". E ae, dá conta de configurar? ^^ Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 4, 2014 Agora você já sabe qual foi o seu problema. 1 - O seu php não está configurado para interpretar a tag " <? " com isso nada é exibido. 2 - Seu servidor de emails não está configurado corretamente, consequentemente não enviará emails. Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 5, 2014 <?php $to = 'mail@mailcom'; $subject = 'Testing sendmail.exe'; $message = 'Hi, you just received an email using sendmail!'; $headers = 'From: mail@imail.pt' . "\r\n" . 'Reply-To: mail@imail.pt' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)); echo "Email sent"; //} ?> Boas, agora já só me aparece a mensagem "Email Sent" Mas não recebo nada do email. Tentei para dois emails diferentes e nenhum deu Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Fevereiro 5, 2014 Recomendo utilizar o PHPMailer e fácil de configurar e necessita apenas de internet local para envio. :D. Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 5, 2014 EDIT: <?php $to = 'joao.leandro@itg.pt'; $subject = 'Testing sendmail.exe'; $message = 'Hi, you just received an email using sendmail!'; $headers = 'From: itg@itg.pt' . "\r\n" . 'Reply-To: itg@itg.pt' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers )) echo "Email sent"; //} ?> Pagina em branco Mais facil? tenho de fazer alguma configuração para usar phpmailer? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 5, 2014 Sim. Dê uma pesquisada no google que você vai achar as diretivas, ou dê uma busca aqui no fórum mesmo, pois com certeza tem só não me recordo o tópico. Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 5, 2014 Muito mais simples realmente. Ja envia emails. Mas agora tenho um codigo imenso. E agora queria colocar-lhe a tal regra. $db = @mysql_select_db($banco_de_dados,$conn) or die ("Não foi possivel ligar-se a Base de Dados!"); $sql = ("SELECT Nome, AlvaraValidade, AcidenteValidade, SeguroValidade, FinancasValidade, SocialValidade, RemuneracaoValidade, InstaladorValidade, MontadorValidade, MedicaValidade, ProjectistaValidade, GasValidade, RedesValidade, SoldadorValidade, MecanicoValidade, ClasSoldadorValidade, MaquinaValidade1, MaquinaValidade2, MaquinaValidade3, MaquinaTopoValidade FROM tb_eqipamentos, tb_detalhe_trabalhador, tb_trabalhador"); $validade = mysql_query($sql); Agora não sei se ponho a regra aqui no meio ou não s: while($item = mysql_fetch_assoc($validade)){ $PHPMailer = new PHPMailer(); // define que será usado SMTP $PHPMailer->IsSMTP(); // envia email HTML $PHPMailer->isHTML( true ); Compartilhar este post Link para o post Compartilhar em outros sites
klasss 0 Denunciar post Postado Fevereiro 6, 2014 Boas, Depois de conseguir enviar emails apareceu-me uma dificuldade.Que é como coloco a mensagem a dizer que o nome X tem a certa data a terminar. $db = @mysql_select_db($banco_de_dados,$conn) or die ("Não foi possivel ligar-se a Base de Dados!"); $sql = ("SELECT Nome, AlvaraValidade, AcidenteValidade, SeguroValidade, FinancasValidade, SocialValidade, RemuneracaoValidade, InstaladorValidade, MontadorValidade, MedicaValidade, ProjectistaValidade, GasValidade, RedesValidade, SoldadorValidade, MecanicoValidade, ClasSoldadorValidade, MaquinaValidade1, MaquinaValidade2, MaquinaValidade3, MaquinaTopoValidade FROM tb_eqipamentos, tb_detalhe_trabalhador, tb_trabalhador WHERE datediff(now(), data) <= 10 "); $validade = mysql_query($sql); $PHPMailer = new PHPMailer($validade); (...) // corpo da mensagem $PHPMailer->Body = '<p>Faltam 10 dias ou menos para terminar a data do Documento ".$Nome."</p>'; Compartilhar este post Link para o post Compartilhar em outros sites