Jump to content
rmlm

Enviar email

Recommended Posts

rmlm

Pessoal tenho mais uma dúvida,

Eu tenho este código que insere uma resposta na BD a uma determinada mensagem do utilizador:

<?php
mysql_connect('localhost', 'root', '') or trigger_error(mysql_error());
mysql_select_db('teste') or trigger_error(mysql_error());
              
if( $_SERVER['REQUEST_METHOD'] == "POST" ){

              $c1 = mysql_real_escape_string($_POST['id']);
              $c2 = mysql_real_escape_string($_POST['resposta']);
    
              $sql = mysql_query("UPDATE mensagens SET resposta = '". $c2 ."' WHERE msgid = '". $c1 ."' ");
$sql2 = mysql_query("UPDATE mensagens SET respondida = 'Sim' WHERE msgid = '". $c1 ."' ");

$sql3 = mysql_query("SELECT * FROM mensagens ORDER BY msgid desc");
$dados3 = mysql_fetch_array($sql3);


header('Location: Admin/painel2.php');
              echo $sql;
echo $sql2;     
}
?>

Ate aqui tudo bem é inserida a resposta e actualizado o estado para "Sim", mas eu agora queria que essa resposta fosse enviada para o utilizador que fez a pergunta (senão nem fazia sentido ter isto!  :) )...

Se eu adicionar isto:

mail($dados3['email'], "Contacto RMLM", $c2, "From: eu <eu@gmail.com>\n\n");

Vai funcionar? eu pergunto porque estou na localhost e não está a dar nenhum erro mas também nao me chega mail nenhum!

Share this post


Link to post
Share on other sites
malainhocf

Eu pessoalmente prefiro usar a classe phpmailler

E lá podes obter uma mensagem de erro se for o caso

Não sei se com mail() também podes fazer isso.

Simplesmente não uso. Acho-a muito limitada. Mas se calhar até estou errado.

Share this post


Link to post
Share on other sites
rmlm

E num servidor free vai dar?

É que tenho a ideia que ha uns tempos tentei esta funçao mail num servidor free e deu barraca!

Share this post


Link to post
Share on other sites
malainhocf

Se quiseres baixar a classe phpmailler eu arranjo-te um exemplo dela

E algém até pode querer melhorar o meu código

Assim beneficias tu, e ganho eu também :)

Share this post


Link to post
Share on other sites
rmlm

Se quiseres baixar a classe phpmailler eu arranjo-te um exemplo dela

E algém até pode querer melhorar o meu código

Assim beneficias tu, e ganho eu também :)

Mostra la entao sff

Share this post


Link to post
Share on other sites
rmlm

No localhost não .. não sem as devidas configurações (não vale a pena o esforço, imo).

Estou a ver que vou ter que comprar servidor para as minhas brincadeiras  🤔

Share this post


Link to post
Share on other sites
malainhocf

Espero que não esteja a publicar aqui barbaridades, mas se estiver, por favor, alterem isso

Não vai eu induzir em erro a comunidade do Portugal a programar.

Aqui está o código

Se tiveres duvidas, pergunta.

// Prepara as variáveis para enviar email

    $assunto=$nome." comentou no nosso blogue";

    $mensagem="<h3>Recebeu uma mensagem de ";

    $mensagem.=$nome."</h3><br />";

    $mensagem.=$comentario;

    $de="webmaster@cev.org.pt";

    $para="cev@cev.org.pt";

    $servidor="mail.cev.org.pt";



    // Envia o email para informar que a publicacao foi comentada

    require("phpmailer/class.phpmailer.php");



    // Inicia a classe PHPMailer

    $mail = new PHPMailer();



    // Define os dados do servidor e tipo de conexão

    $mail->IsSMTP(); // Define que a mensagem será SMTP

    $mail->Host = $servidor; // Endereço do servidor SMTP

    $mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)

    $mail->SMTP_PORT = "25";

    // $mail->SMTPSecure = "tls";

    $mail->Username = 'webmaster@cev.org.pt'; // Usuário do servidor SMTP

    $mail->Password = "TUAPASSWORD"; // Senha do servidor SMTP



    // Define o remetente

    $mail->From = $de; // Seu e-mail

    $mail->FromName = $de; // Seu nome



    // Define os destinatário(s)

    $mail->AddAddress($para);

    // $mail->AddAddress('ciclano@site.net');

    // $mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia

    // $mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta



    // Define os dados técnicos da Mensagem

    $mail->IsHTML(true); // Define que o e-mail será enviado como HTML

    $mail->CharSet = 'utf-8'; // Charset da mensagem (opcional)



    // Define a mensagem (Texto e Assunto)

    $mail->Subject  = $assunto; // Assunto da mensagem

    $mail->Body = $mensagem;

    // $mail->AltBody = "";



    // Define os anexos (opcional)

    // $mail->AddAttachment("c:/temp/documento.pdf", "novo_nome.pdf");  // Insere um anexo



    // Envia o e-mail

    if(!$mail->Send()) {

        $msg="Erro: ".$mail->ErrorInfo;

    } else {

        $msg="Recebemos o seu comentário com sucesso, aguarde a aprovação";

    }



    // Limpa os destinatários e os anexos

    $mail->ClearAllRecipients();

    $mail->ClearAttachments();
    // Fim do envio do email

Share this post


Link to post
Share on other sites
rmlm

Obrigado malainhocf pelo código!

Hoje não, mas amanha já vou testar!

Testas-te em servidor pago ou gratis?

Share this post


Link to post
Share on other sites
malainhocf

Eu tenho um servidor pago, quase dedicado

Isto é partilhado mas menus partilhado do que serviços puramente partilhados

Não sei se me fiz entender

Eu não sei se no teu servidor gratuito vai funcionar. Mas com essa classe podes como mostrei configurar o smtp

Não é o mesmo que usar a função mail() que depende das configurações do servidor

Mas experimenta e depois diz como correu ao pessoal

Share this post


Link to post
Share on other sites
malainhocf

Sem má intenção da minha parte

O código que coloquei aqui tem algum erro ou precisa de ser melhorado ?

Pelo menus no site que eu fiz funciona.

Share this post


Link to post
Share on other sites
Guest id194

Simplesmente não uso. Acho-a muito limitada. Mas se calhar até estou errado.

Estás um bocado.

Não é tão fraca quanto muita a gente a pinta. Até porque essa classe usa o mail() do PHP por omissão se não tiveres um SMTP configurado.

Share this post


Link to post
Share on other sites
malainhocf

Compreendo

Apesar que nesse código eu usei autenticação de smpt

Então assim ele já não usa o mail() ?

Depois, uma pergunta, ao usar a classe phpmailler, não fico com mais poder do que se usasse a função mail() ?

Eu parece-me que sim.

Share this post


Link to post
Share on other sites
Guest id194

Se usas o mail() no PHPMailer, não, não ficas com mais poder nenhum. Acho que é lógico.

Se usas SMTP do PHPMailer, claro que tens outras possibilidades que o mail() não te dá. Mas se reparares no código do PHPMailer, ele usa uma classe para SMTP própria criada por outra pessoa.

A questão é que para a maioria das situações, o mail() chega perfeitamente. E para este funcionar é precisar ter o sendmail instalado (penso que isso seja só para sistemas Linux) ou então configurar um servidor SMTP no php.ini. Claro que num host pago (ou até mesmo alguns gratuitos) não tens de preocupar com essas configurações, mas podes ter limitações no envio como é lógico, dai existirem classes como o PHPMailer que te dão mais flexibilidade.

Mas isso não tem nada a ver com o mail() ser inferior ao PHPMailer, simplesmente os hosts limitam o uso porque estas a usar o servidor SMTP deles. Obviamente que ao usares um servidor SMTP próprio só tens os limites impostos pelo teu SP.

Share this post


Link to post
Share on other sites
rmlm

Pois é, já tive a ver e no meu servidor free (zymic) se quiser utilizar a funçao mail() tenho que pagar...

Alguem conhece um servidor free que suporte esta função?

Share this post


Link to post
Share on other sites
scorch

Eu uso o Byethost, versão free, e o meu blog (Wordpress) consegue enviar mails. Não sei que método usa o Wordpress, mas suponho que seja a função mail, pelo que podes tentar. :)


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
brunoais

Eu uso o Byethost, versão free, e o meu blog (Wordpress) consegue enviar mails. Não sei que método usa o Wordpress, mas suponho que seja a função mail, pelo que podes tentar. :)

Mesmo n tendo lido o código do wordpress eu digo q é o mail(). O byethost n permite outra maneira de enviar e-mails numa conta grátis sem ser usando a função mail().


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
rmlm

De facto o  byethost não me deu erro na função mail... mas até agora ainda não recebi mail nenhum!

vou aguardar...

Share this post


Link to post
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.