Ir ao conteúdo
  • Cadastre-se

Envio de informações de formulário


Posts recomendados

Bom dia;

 

Implementei uma seção de contato por meio de um formulário, com informações básicas como nome, email, assunto e a mensagem. usei a tag

 

<form action:"MAILTO:[email protected]">,

 

porém, quando clico para enviar, aparece uma janela pedindo qual aplicativo eu gostaria de abrir (outlook, por exemplo). O que eu gostaria que acontecesse é que, ao clicar no botão enviar, automaticamente a mensagem fosse enviada, sem necessidade de um programa externo. Estou usando a action errada?

Obrigado pela compreensão.

Link para o comentário
Compartilhar em outros sites

Battu, boa tarde

 

O envio de email vai depender de que linguagem de programação esta utilizando.

Se tiver usando o PHP eu recomendo que de uma pesquisada sobre o PHPMailer, aqui tem um link mostrando como ele funciona: http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer

só pegar o exemplo e implementar, qualquer coisa pede ajuda aqui.

Link para o comentário
Compartilhar em outros sites

37 minutos atrás, Battu disse:

Boa tarde Ygor. Estou usando somente HTML mesmo, com CSS e .JS, achei no google algumas soluções, mas apenas para PHP, assim como você indicou. Uma solução para usar em HTML ainda não consegui.

Um abraço.

Battu só com HTML você não vai conseguir enviar as informações para um email, HTML é apenas Visual ele não realiza nenhuma ação nos dados.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Battu Olá.  Não.  É preciso de uma intervenção de linguagem de programação server side.

Só com php ou outra linguagem.

O mais comum é php.  Usando o phpmailer como já falaram você resolve facilmente

 

Você pode até usar  mailto... mas não no <form> se não pode enviar dados...

 teria de fazer desta maneira:

 

<a href="MAILTO:[email protected]">Envie-me um E-mail</a>

Desta forma vai funcionar... MAS vai exigir um programa de e-mail... por exemplo o outook na máquina do usuário.

Se quiser enviar com dados escritos do formulário só com PHP.

Link para o comentário
Compartilhar em outros sites

Boa noite, a primeira vez que usei a função MAILTO eu também tive esse problema de abrir o Outlook, faz o seguinte coloque:

<form action="enviar.php" name="form_contato" method="post">

coloque um input type="submit" para enviar a form, e na página enviar.php coloque suas variáveis com _POST, ex:

$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['tel'];
$mensagem = $_POST['msg'];

Se quiser você pode criar uma tabela para deixar mais bonito e guardar o conteúdo dentro de uma variável:

$arquivo = "
    <style type='text/css'>
    body {
    margin:0px;
    font-family:Verdane;
    font-size:12px;
    color: #666666;
    }
    a{
    color: #666666;
    text-decoration: none;
    }
    a:hover {
    color: #FF0000;
    text-decoration: none;
    }
    </style>
    <html>
        <table width='510' border='1' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
            <tr>
              <td>
    <tr>
                 <td width='500'>Nome:$nome</td>
                </tr>
                <tr>
                  <td width='320'>E-mail:<b>$email</b></td>
       </tr>
        <tr>
                  <td width='320'>Telefone:<b>$telefone</b></td>
                </tr>
                <tr>
                  <td width='320'>Mensagem:$mensagem</td>
                </tr>
            </td>
          </tr> 
          <tr>
            <td>Este e-mail foi enviado em <b>$data_envio</b> Ã s <b>$hora_envio</b></td>
          </tr>
        </table>
    </html>
    ";

 

 

Depois você vai criar uma variável com seu email ex:

$emailenviar = "[email protected]";
	$destino = $emailenviar;
	$assunto = "Fale conosco";

	$headers  = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
		$headers .= 'From: Contato <$nome>';
	 
	$enviaremail = mail($destino, $assunto, $arquivo, $headers);

e se quiser voltar para sua página inicial:

if($enviaremail){
	header("Location: index.php");
	} else {
	header("Location: error.php");
	}

 

Link para o comentário
Compartilhar em outros sites

Bom dia amigos. Primeiramente, muitissimo obrigado pelo empenho na ajuda, obrigado mesmo. Como devem ter percebido, eu sou bem novato nesse assunto, e realmente nunca fiz absolutamente nada em .php, então, estou lendo alguns tutoriais básicos dessa linguagem, para tentar fazer como os amigos recomendaram, mas ainda sem resultados satisfatórios. Continuarei tentando, e postarei aqui a minha evolução.

Link para o comentário
Compartilhar em outros sites

@ImTheUnix Acho que estou conseguindo entender o básico do básico do php, mas quando clico em enviar, me retorna a seguinte mensagem:

 

Warning: mail(): SMTP server response: 504 5.5.2 <$name>: Sender address rejected: need fully-qualified address in D:\web\localuser\teste\www\enviar.php on line 58

 

Meu código do formulário na página html está assim:

 

<form action="enviar.php" name="form_contato" method="post">
	<div class="input-field">
		<input type="text" name="name" class="form-control" placeholder="Seu Nome...">
	</div>
	<div class="input-field">
		<input type="email" name="email" class="form-control" placeholder="Seu Email...">
	</div>
	<div class="input-field">
		<input type="text" name="subject" class="form-control" placeholder="Assunto...">
	</div>
	<div class="input-field">
		<textarea name="message" class="form-control" placeholder="Mensagem..."></textarea>
	</div>
	<button type="submit" id="submit" class="btn btn-blue btn-effect">Enviar</button>
</form>

e o código em php que você passou, no arquivo enviar.php, assim:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];


$arquivo = "
    <style type='text/css'>
    body {
    margin:0px;
    font-family:Verdane;
    font-size:12px;
    color: #666666;
    }
    a{
    color: #666666;
    text-decoration: none;
    }
    a:hover {
    color: #FF0000;
    text-decoration: none;
    }
    </style>
    <html>
        <table width='510' border='1' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
            <tr>
              <td>
    <tr>
                 <td width='500'>Nome:$name</td>
                </tr>
                <tr>
                  <td width='320'>E-mail:<b>$email</b></td>
       </tr>
        <tr>
                  <td width='320'>Assunto:<b>$subject</b></td>
                </tr>
                <tr>
                  <td width='320'>Mensagem:$message</td>
                </tr>
            </td>
          </tr> 
          <tr>
            <td>Este e-mail foi enviado em <b>$data_envio</b> Ã s <b>$hora_envio</b></td>
          </tr>
        </table>
    </html>
    ";
	
	$emailenviar = "[email protected]";
	$destino = $emailenviar;
	$assunto = "Fale conosco";

	$headers  = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
		$headers .= 'From: Contato <$name>';
	 
	$enviaremail = mail($destino, $assunto, $arquivo, $headers);
	
?>

Onde estou errando? Obrigado novamente!

Link para o comentário
Compartilhar em outros sites

@Ygor AnjosBom dia Ygor. Então, eu tentei também, conforme o link que você passou. Adicionei os arquivos class.phpmailer.php e class.smtp.php dentro de uma pasta chamada phpmailer, conforme explicado no link, e usei o mesmo código de exemplo de lá, mas sem seucesso, a mensagem de erro é:

 

Fatal error: Class 'SMTP' not found in D:\web\localuser\teste\www\phpmailer\class.phpmailer.php on line 1466

 

Vi nos comentários que outras pessoas também estão recebendo esse erro, porém, não há nenhuma resposta lá.

Link para o comentário
Compartilhar em outros sites

@Battu Provavelmente é porque seu site não está hospedado, ele precisa usar a "secretaria eletrônica" do host para enviar a mensagem, eu recomendo hospedar no hostinger.com.br

adicionado 1 minuto depois

@Battu SMTP ou Simple Mail Transfer Protocol é a ferramenta utilizada para enviar o e-mail, por isso deve estar hospedado

Link para o comentário
Compartilhar em outros sites

Segue esse tutorial

 

http://www.linhadecomando.com/php/php-usando-phpmailer-para-envio-de-email-com-anexo

 

não esquece de mudar essa linha

 

require_once('class.phpmailer.php');

 

com o local correto do arquivo

adicionado 8 minutos depois
8 minutos atrás, ImTheUnix disse:

@Battu Provavelmente é porque seu site não está hospedado, ele precisa usar a "secretaria eletrônica" do host para enviar a mensagem, eu recomendo hospedar no hostinger.com.br

adicionado 1 minuto depois

@Battu SMTP ou Simple Mail Transfer Protocol é a ferramenta utilizada para enviar o e-mail, por isso deve estar hospedado

p erro ocorreu por que não acho o arquivo com a classe SMTP

se ele estiver rodando local ele só precisa das configurações do servidor de email para fazer o envio do email, não precisa estar necessariamente hospedado

alem de que o hostinger.com.br não deixa você fazer envio de email SMTP com conta free só premiun

Link para o comentário
Compartilhar em outros sites

Warning: mail(): SMTP server response: 504 5.5.2 <$name>: Sender address rejected: need fully-qualified address in D:\web\localuser\brastextextura\www\enviar.php on line 58

 

a parte em negrito, ele pede acesso ao servidor, com PHPMailer você consegue fazer

qualquer coisa posta a estrutura(em texto só pra saber onde ta os arquivos) de pasta aqui que ajudamos.

Link para o comentário
Compartilhar em outros sites

@Ygor Anjos Ygor, acho que essa etapa não será mais necessária, eu estou quase conseguindo! Era puramente leiguice minha, não sabia que era possível utilizar html junto com php no mesmo código, então, pelo html eu estava chamando outra página em php, que burro! hehe.

 

Enfim, agora com o último exemplo do PHPMailer consegui enviar o email. Porém, no exemplo, ele envia apenas o nome, o assunto e o anexo, eu gostaria de enviar o nome, email do remetente, assunto e a mensagem, mas quando adiciono eses parâmetros, aparece que o email foi enviado com sucesso, porém, não é entregue na minha caixa de entrada. Creio que seja apenas pequenos ajustes. Te agradeço imensamente por toda essa ajuda!

 

Parte do Código do exemplo:

$nome 	    = $_POST['nome'];
 $assunto   = $_POST['assunto'];
 $mensagem  = $_POST['mensagem'];
 $arquivo   = $_FILES["arquivo"];
 
 $corpoMSG = "<strong>Nome:</strong> $nome<br> <strong>Mensagem:</strong> $mensagem";

Meu código:

$name 	    = $_POST['name'];
 $email   = $_POST['email'];
 $subject  = $_POST['subject'];
 $message   = $_POST["message"];
 
 $corpoMSG = "<strong>Nome:</strong> $name<br> <strong>Email:</strong> $email <strong>Assunto:</strong> $subject <strong>Mensagem:</strong> $message";

 

 

Esqueça o que acabei de falar, as mensagens estavam indo para o SPAM e eu não percebi. Enfim, tudo funcionando corretamente agora! Muito obrigado @Ygor Anjos! Muito obrigado @ImTheUnix! Vocês são demais!

Link para o comentário
Compartilhar em outros sites

<!DOCTYPE html>
	<head>
	</head>
	<body>
      <main>
    	<form action="?acao=enviar" name="form_contato" method="post" enctype="multipart/form-data">
								<div class="input-field">
									<input type="text" name="name" class="form-control" placeholder="Seu Nome...">
									
								</div>
								<div class="input-field">
									<input type="email" name="email" class="form-control" placeholder="Seu Email...">
								</div>
								<div class="input-field">
									<input type="text" name="subject" class="form-control" placeholder="Assunto...">
								</div>
								<div class="input-field">
									<textarea name="message" class="form-control" placeholder="Mensagem..."></textarea>
								</div>
						       	<button type="submit" id="submit" class="btn btn-blue btn-effect">Enviar</button>
							</form>
      </main>
      <?php
if($_GET['acao'] == 'enviar'){
 $name 	    = $_POST['name'];
 $email   = $_POST['email'];
 $subject  = $_POST['subject'];
 $message   = $_POST["message"];
 
 $corpoMSG = "<strong>Nome:</strong> $name<br> <strong>Email:</strong> $email<br> <strong>Assunto:</strong> $subject<br> <strong>Mensagem:</strong> $message";
 // chamada da classe		
 require_once('phpmailer/class.phpmailer.php');
 // instanciando a classe
 $mail   = new PHPMailer();
 // email do remetente
 $mail->SetFrom('[email protected]', 'Contato Site');
 // email do destinatario
 $address = "[email protected]";
 $mail->AddAddress($address);
 // assunto da mensagem
 $mail->Subject = $assunto;
 // corpo da mensagem
 $mail->MsgHTML($corpoMSG);
 
 if(!$mail->Send()) {
   echo "Erro: " . $mail->ErrorInfo;
  } else {
   echo "Mensagem enviada com sucesso!";
  }
}
?>
</body>

Aí está @Ygor Anjos!

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Battu disse:

$mail->Subject = $assunto;

a variavel $assunto n esta definida

 

e para enviar o gmail você tem que fazer umas configurações a mais.

depois desse trecho adicione o seguinte

5 minutos atrás, Battu disse:

$mail = new PHPMailer();

$mail->IsSMTP(); // Ativar SMTP 
$mail->SMTPDebug = 0; // Debugar: 1 = erros e mensagens, 2 = mensagens apenas 
$mail->SMTPAuth = true; // Autenticação ativada 
$mail->SMTPSecure = 'ssl'; // SSL REQUERIDO pelo GMail 
$mail->Host = 'smtp.gmail.com'; // SMTP utilizado 
$mail->Port = 587; // A porta 587 deverá estar aberta em seu servidor 
$mail->Username = 'emailgmail'; 
$mail->Password = ''senhagmail;

 

 

fonte: http://www.gn10.com.br/blog/dicas/envie-emails-php-smtp-gmail-google-apps/

adicionado 3 minutos depois

Enviar pelo gmail é mais difil do que parece, se você tiver um servidor de email da empresa fica bem mais fácil de configurar e fazer o envio.

Link para o comentário
Compartilhar em outros sites

@Ygor Anjos Ah sim, perdão, acabei te enviando o código que eu estava testando. Coloquei o servidor próprio e funcionou corretamente. Único porém é que a mensagem de "Mensagem enviada" não está aparecendo, e depois do envio, está voltando ao topo da página. Vou pesquisar como colocar um pop-up para dar essa informação de mensagem enviada, e impedir que a rolagem volte ao topo da página.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...