Ir para conteúdo
Fórum Script Brasil
  • 0

Como enviar E-mail via PHP e criar Autenticação?


ReDNoS

Pergunta

16 respostass a esta questão

Posts Recomendados

  • 0

você pode fazer isso em javascript... é bem mais fácil

javascript

function valida_email()
{
   var digits = '0123456789'; // com o que vai comparar o conteudo do campo
   var temp; // variavel auxiliar
   var email = document.getElementById('email').value; // pegando apenas o valor do campo email
   var eValido = true; // variavel que recebe o valor final da verificação
  
   var arroba = document.getElementById('email').value.indexOf("@");    // pegando o indice da primeira aparição do @
   var ponto = document.getElementById('email').value.lastIndexOf("."); // pegando o indice da ultima aparição do ponto


    if (email != "") // se o campo email estiver vazio
    {
        if ((arroba < 1) || (ponto - arroba < 2))  // verifique a posição do arroba e do ponto
        {
          alert("Favor preencher o campo Email corretamente") // se não encontrar os dois mostra o alert
              document.form1.email.focus();                                  // foque no campo 
          eValido = false;                                                        // coloque "false" na var que recebe o resultado final  
          return false;                                                             // pare tudo para não resetar o formulário
        }
    } 
        else if (eValido == true)
        {
           alert('Email correto, seu email: ' + email);
        }
        return true;
}
html:
<form name='form1' id='form1' onsubmit='valida_email();'>
<input type='text' name='email' id='email' />
<br>
<input type='submit' name='btn1' value='clique em mim' />
</form>

eu considero o javascript como sendo a melhor linguagem para validação de formulários, e afins... visto que ele bloqueia na interface o usuário, nem permitindo passar para o php... claro que tem como fazer em php, mas eu recomendo o uso de javascript...

duvidas, posta ae

Link para o comentário
Compartilhar em outros sites

  • 0

ReDNoS, segue uma sugestão de lógica:

- Crie uma tabela temporária onde fica o registro do usuário que ainda não foi validado, esta tabela contém um campo com um código aleatório;

- Uma mensagem é enviada para o usuário contendo o link para validação por exemplo: http://meudominio.com.br/valida.php?codigo=dsiu9424m8934

Vamos ao principal, o código de verificação:

<?php
function valida($codigo)
{
    $sql = "select * from tbl_temp where codigo = '".$codigo."'";
    $result = mysql_query($sql)or die(mysql_error());
    if(mysql_num_rows($result) != 0)
    {
         //pega os dados da tabela temporaria e manda para a definitiva

        return true;
    }
    else
    {
         return false;
    }
}

if(valida($_GET['codigo']))
{
    echo "Cadastro efetuado com sucesso!!!";
    exit;
}
echo "Código inválido.";
?>

Claro, você deve adicionar as suas regras de segurança para evitar SQL Injection...

T+

André

Link para o comentário
Compartilhar em outros sites

  • 0

Beleza... Vamos lá.

Enviando e-mail com a função mail() do php.

veja: http://www.php.net/manual/pt_BR/function.mail.php

Enviando uma mensagem somente texto:

$para = "fulano@dominio.com";
$assunto = "Teste";
$mensagem = "Bom dia";

if(!mail($para,$assunto, $mensagem,"From: seu_email@dominio.com.br"))
{
    echo "Não foi possivel enviar o e-mail";
    exit; 
}
echo "E-mail enviado com sucesso";
Enviando uma mensagem em html
$para = "fulano@dominio.com";
$assunto = "Teste";
$mensagem = "Bom dia <strong>fulano</strong> hoje é: <strong style=\"color:red;\">".date("d/m/Y")."</strong>";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Seu Nome <seu_email@dominio.com.br>'. "\r\n";

if(!mail($para,$assunto, $mensagem,$headers))
{
    echo "Não foi possivel enviar o e-mail";
    exit; 
}
echo "E-mail enviado com sucesso";

Você também pode enviar utilizando a classe phpmailer. Alguns servidores smtp só permitem o envio de e-mail depois que o usuário for autenticado (a classe phpmailer tem suporte para este caso).

T+

André

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, porém eu ainda tenho um problema, eu não estou criando o site já com um domínio. Estou criando meu site em Easy-PHP e gostaria de saber como faço para fazer um teste enviando um e-mail por Server 127.0.0.1?

Eu achei essas linhas no arquivo php.ini do Easy-PHP

[mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
sendmail_from = me@localhost.com

Mas mesmo assim não consigo enviar e-mail quando coloco From: me@localhost.com

Alguém sabe como enviar e-mail por server 127.0.0.1? É só para eu poder testar certas coisas que preciso.

Link para o comentário
Compartilhar em outros sites

  • 0

Segui lá o tutorial do Hmailserver e tal, o me anti-vírus até escaneia o e-mail, mas até agora nenhum e-mail chegou a minha conta @hotmail.com

Estou tentando mandar para minha conta @hotmail.com...

O que será que está errado?

Aqui no programa já está registrado mais de 17 envios de e-mail mas até agora nenhum apareceu na minha acc hotmail =/

Link para o comentário
Compartilhar em outros sites

  • 0
Simples, o hotmail está bloqueando o e-mail, se você perder 5 minutos e buscar no google vai ver que é a coisa mais normal do mundo, o hotmail tem um filtro totalmente maluco...

Também tentei mandar para o meu gmail mas foi pior. O anti-vírus fala que minha mensagem foi bloqueada pk meu IP não tem autorização pra ser Servidor de E-mails ^^.

Bom, se eu puder mandar para um própio e-mail do server, tudo bem, porém, como faço pra visualizar uma mensagem recebida do própio server?

---------------------------------------------

Editado

Aew, eu consegui utilizando o servidor de e-mails aqui da empresa enviando do meu e-mail para o meu própio e-mail do server, porém, com esse server da empresa, também não consigo enviar para hotmail e gmail =/.

Editado por ReDNoS
Link para o comentário
Compartilhar em outros sites

  • 0

ó cara, eu testei com o Server do meu amigo e com o da empresa e n consegui. No da empresa ainda consegui mandar e-mail pra min mesmo, agora o do meu colega não consegui mandar pra ninguém. Se você tiver um smtp funcionando legal pra eu testar + 1 script decente eu agradeceria. Tentei com scripts simples mas parece ke não vai de jeito nenhum.

Odeio e-mails, mas preciso fazer esse sistema de envio.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...