Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, moçada tenho o seguinte código com e-mail de remetente e destinatário definido mas está apresentando o seguinte erro:
Erro: Você deve fornecer pelo menos um endereço de destinatário de email.
Segue o código. Vejam se podem me ajudar! Agradeço!
<?php
// resgatando os dados passados pelo form
//$nomeusuario = $_POST['nome'];
//$emailusuario = $_POST['email'];
//$assunto = $_POST['assunto'];
//$mensagem = $_POST['msg'];
$nomeusuario = $_POST['nome'];
$emailusuario = $_POST['emailx'];
$telefone = $_POST['telefone'];
$Empresa = $_POST['Empresa'];
$assunto = $_POST['Assunto'];
$mensagem = $_POST['Mensagem'];
//$emailremetente = "webmaster@dominio.com.br";
// chamada da classe phpmailer
require_once('class.phpmailer.php');
// faço a chamada da classe
$Email = new PHPMailer();
// na classe, há a opção de idioma, setei como br
$Email->SetLanguage("br");
// esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail, qmail, etc
//envio por SMTP
$Email->IsSMTP();
$Email->Host = "smtp.dominio.com.br"; //SMTP servers
$Email->Port = 465; //SMTP porta
$Email->SMTPSecure = "ssl"; // sets the prefix to the servier
$Email->SMTPAuth = true; //SMTP authentication
$Email->Username = 'administracao@dominio.com.br'; //SMTP username
$Email->Password = 'dass321'; //SMTP password
// email do remetente da mensagem
$Email->From = "administracao@dominio.com.br";
// nome do remetente do email
//$Email->Priority = "1"; // Prioridade da mensagem 1 Forte / 3 Normal / 5 Fraca
//$Email->FromName = $nomeusuario;
// Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá?
$Email->AddAddress = ('webmaster@dominio.com.br');
$Email->AddBcc = ('ruver@gmail.com');// ativa o envio de e-mails em HTML, se false, desativa.
$Email->IsHTML(true);
$Email->Subject = $assunto;
// Define o texto da mensagem (aceita HTML)
$Email->Body .= "<B>E-mail enviado por usuário<BR></b>";
$Email->Body .= "Mensagem do usuário: $msg<BR><BR>";
// verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia.
if(!$Email->Send())
{
echo "A mensagem não foi enviada. <p>";
echo "Erro: " . $Email->ErrorInfo;
}
else {
echo "Dados enviados com sucesso. <br>Verifique seu e-mail<br><br>Observação: O E-mail pode cair na caixa de spam, verifique a caixa de spam.<br>Se usa Hotmail deve verificar o lixo eletrônico que localiza-se abaixo da caixa de entrada.";
}
?>>
Olá,
você conferiu o nome dos campos no formulário de entrada dos dados?
Poste o formulário.
Abs.
Opa! obrigado pelo interesse.
Os campos de destino são esses:
$Email->AddAddress = ('webmaster@dominio.com.br');
$Email->AddBcc = ('ruver@gmail.com');
ou seja ,preenchidos manualmente.
Estou falando sobre algo mais básico, deixe-me explicar.
Você tem um formulário de entrada de dados que é preenchido pelo usuário, que direciona para o script que postou.
Os campos existentes nesse formulário são identificados.
Você declara essa identificação nas variáveis:
$nomeusuario = $_POST['nome'];
$emailusuario = $_POST['emailx'];
$telefone = $_POST['telefone'];
$Empresa = $_POST['Empresa'];
$assunto = $_POST['Assunto'];
$mensagem = $_POST['Mensagem'];
Verifique no formulário de entrada, se a identificação dos campos corresponde exatamente ao declarado nas variáveis, por exemplo:
o campo onde o usuário posta o seu próprio e-mail é identificado como "emailx"?
Qualquer dúvida poste o formulário de entrada.
Abs.
>
Estou falando sobre algo mais básico, deixe-me explicar.
Você tem um formulário de entrada de dados que é preenchido pelo usuário, que direciona para o script que postou.
Os campos existentes nesse formulário são identificados.
Você declara essa identificação nas variáveis:
$nomeusuario = $_POST['nome'];
$emailusuario = $_POST['emailx'];
$telefone = $_POST['telefone'];
$Empresa = $_POST['Empresa'];
$assunto = $_POST['Assunto'];
$mensagem = $_POST['Mensagem'];
Verifique no formulário de entrada, se a identificação dos campos corresponde exatamente ao declarado nas variáveis, por exemplo:
o campo onde o usuário posta o seu próprio e-mail é identificado como "emailx"?
Qualquer dúvida poste o formulário de entrada.
Abs.
Estou passando a string que vai pela url: (...)dominio.com.br/envia4.php?nome=rubens&emailx=ruver@gmail.com&telefone=22255555&Empresa=sdad&Assunto=Orcamentos&Mensagem=asds
Mesmo assim, nenhum desses dados está sendo aproveitado, pois como ainda estou testando o script, tanto o remetente como o destinatário estou preenchendo manualmente:
//envio por SMTP
$Email->IsSMTP();
$Email->Host = "smtp.dominio.com.br"; //SMTP servers
$Email->Port = 465; //SMTP porta
$Email->SMTPSecure = "ssl"; // sets the prefix to the servier
$Email->SMTPAuth = true; //SMTP authentication
$Email->Username = 'administracao@dominio.com.br'; //SMTP username
$Email->Password = 'dass321'; //SMTP password
// email do remetente da mensagem
$Email->From = "administracao@dominio.com.br";
// nome do remetente do email
//$Email->Priority = "1"; // Prioridade da mensagem 1 Forte / 3 Normal / 5 Fraca
//$Email->FromName = $nomeusuario;
// Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá?
$Email->AddAddress = ('webmaster@dominio.com.br');
$Email->AddBcc = ('ruver@gmail.com');Bom testei se está recebendo as variáveis (mesmo eu não utilizando-as ainda) e não está. Testei assim:
if(!$Email->Send())
{
print "
Nome: $nomeusuario<br>
Assunto: $assunto<br>
Mensagem do usuário: $mensagem<br>
E-mail: $emailusuario <br>
Telefone: $telefone<br>
Empresa: $Empresa<br>
";
}
E sai assim:
Nome:
Assunto:
Mensagem do usuário:
E-mail:
Telefone:
Empresa:
Tudo vazio. Vou postar o form e o script de captcha que vem antes dessa página.
Form
<form method="post" action="valida.php">
<label for="user">Nome</label>
<input type="text" name="nome" /><br />
<br />
<label for="emailaddress">Email:</label>
<input type="text" name="email" /><br />
<br />
<label for="tel">Telefone:</label>
<input type="text" name="telefone" /><br />
<br />
<label for="Empresa">Empresa:</label>
<input type="text" name="Empresa" /><br />
<br />
<label for="Assunto">Assunto:</label>
<select name="Assunto">
<option value="Orcamentos">Orçamentos</option>
<option value="Cobrancas">Cobranças</option>
<option value="Duvidas">Dúvidas</option>
<option value="Sugestoes">Sugestões</option>
<option value="Informacoes">Informações</option>
</select><br />
<br />
<label for="Mensagem">Mensagem:</label>
<textarea name="Mensagem"></textarea><br />
<br />
<label for="terms">Digite o código abaixo:<br>
<br>
<img src="captcha.php" alt="código captcha" />
</label>
<input type="text" name="captcha" id="captcha" /><br />
<br />
<br />
<br />
<input type="submit" name="Submit" id="Submit" value="Enviar" /> <input type="reset" name="resetbutton" id="resetbutton" value="Limpar" />
</form>
Valida Captcha:
<?
// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS
$nome = $_POST['nome'];
$emailx = $_POST['email'];
$telefone = $_POST['telefone'];
$Empresa = $_POST['Empresa'];
$Assunto = $_POST['Assunto'];
$Mensagem = $_POST['Mensagem'];
//$exibir_apos_enviar='envia.php';
if( $_SESSION['captcha'] == $_POST['captcha']){
echo "<script>window.location='envia4.php?nome=$nome&emailx=$emailx&telefone=$telefone&Empresa=$Empresa&Assunto=$Assunto&Mensagem=$Mensagem'</script>";
//echo $nome, $emailx, $telefone, $Empresa, $Assunto, $Mensagem;
}else{
echo "<h1>Código Incorreto!</h1>";
}
?>
Alguém sabe o que devo fazer?
>
Bom testei se está recebendo as variáveis (mesmo eu não utilizando-as ainda) e não está.
Bom troquei o $_POST pelo $_GET e já está recebendo as variáveis . MAS o erro (Você deve fornecer pelo menos um endereço de destinatário de email.) continua...
Olá,
você conferiu o nome dos campos no formulário de entrada dos dados?
Poste o formulário.
Abs.