Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas pessoal!
Estou com deficuldade em detectar o problema no meu código,
O que acontece é que faz-me o registo na base de dados mas o email não envia, dando um o erro
"Message was not sentMailer Error: Language string failed to load: provide_address"
o falho tem que estar addaddress ao receber do Post-> $email, mas não sei como resolver,
este é o código:
<?php
include "config.php";
include "functions.php";
$nome = trim($_POST['nome']);
$sobrenome = trim($_POST['sobrenome']);
$email = trim($_POST['email']);
$usuario = trim($_POST['usuario']);
$info = trim($_POST['info']);
/ erro nos campos do formulário /
if ((!$nome) || (!$sobrenome) || (!$email) || (!$usuario)){
echo "! Campos Obrigatórios ! <br /> <br />";
if (!$nome){
echo "Nome<br />";
}
if (!$sobrenome){
echo "Sobrenome<br />";
}
if (!$email){
echo "Email<br />";
}
if (!$usuario){
echo "Nome de Usuário<br />";
}
echo "<br />Preencha os campos necessários abaixo: <br /><br />";
include "formulario.php";
}
else{
/ Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados /
$sql_email_check = mysql_query("SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'");
$sql_usuario_check = mysql_query("SELECT COUNT(usuario_id) FROM usuarios WHERE usuario='{$usuario}'");
$eReg = mysql_fetch_array($sql_email_check);
$uReg = mysql_fetch_array($sql_usuario_check);
$email_check = $eReg[0];
$usuario_check = $uReg[0];
if (($email_check > 0) || ($usuario_check > 0)){
echo "<strong>ERRO </strong>- Por favor corrija os seguintes erros abaixo: <br /> <br />";
if ($email_check > 0){
echo "O E-mail ( <strong>".$email."</strong> ) já está registado.<br />Por favor verifique o E-mail! <br />";
unset($email);
}
if ($usuario_check > 0){
echo "Este nome de usuário ( <strong>".$usuario."</strong> ) já está sendo uzado.<br />Por favor utilize outro nome de usuário!<br />";
unset($usuario);
}
echo "<br />";
include "formulario.php";
}
else
{
$email = strtolower(trim($_POST['email']));
$char = "@";
$pos = strpos($email, $char);
if ($pos === false){
echo "<strong>ERRO:</strong><br />";
echo "O endereço de email [ <strong><em>".$email."</em></strong> ] que está tentando utilizar não é válido.<br />";
echo "Por favor, utilize um email válido.<br /><br />";
include "formulario.php";
}else{
$v_mail = verifica_email($email);
if ($v_mail){
/*cadastrar
os dados Vamos utilizar uma função para gerar uma senha randômica */
function makeRandomPassword(){
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while($i <= 7){
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$senha_randomica = makeRandomPassword();
$senha = md5($senha_randomica);
// Inserindo os dados no banco de dados
$info = htmlspecialchars($info);
$sql = mysql_query("INSERT INTO usuarios (nome, sobrenome, email, usuario, senha, info, data_cadastro)
VALUES('{$nome}', '{$sobrenome}', '{$email}', '{$usuario}', '{$senha}', '{$info}', now())")
or die( mysql_error() );
if (!$sql){
echo "Ocorreu algum erro ao criar sua conta, por favor entre em contato com o Webmaster.";
}
else {
$usuario_id = mysql_insert_id();
// Enviar um email ao usuário para confirmação e ativar o cadastro!
$mensagem = "Prezado <strong>$nome $sobrenome</strong>,
<br />
Obrigado pelo seu registo em nosso site,
<a href ='http://www.dominio.com'>www.dominio.com</a>!
<br /><br />
Para confirmar seu Registo e ativar a sua conta,
por favor clique no link abaixo ou copie e cole o link na barra de endereço do seu navegador.
<br /><br />
<a href ='http://www.dominio.com/ativar.html?id=$usuario_id&code=$senha'>
[http://www.dominio.com/atvar.html?id=$usuario_id&code=$senha](http://www.dominio.com/atvar.html?id=%24usuario_id&code=%24senha)
</a>
<br /> <br />
Após a ativação da sua conta, você poderá ter acesso ao conteúdo exclusivo,
efetuando o login com os dados abaixo:
<br /> <br />
<strong>Usuario</strong>: {$usuario}
<br />
<strong>Senha</strong>: {$senha_randomica}
<br /><br />
Obrigado!<br /> <br />
webmaster<br /> <br /> <br />
Esta é uma mensagem automática, por favor não responda!";
require_once('class.phpmailer.php');
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->IsHTML(true);
$mailer->SMTPAuth = true;
// seta o prefixo ssl
$mailer->SMTPSecure = 'ssl';
$mailer->SMTPSend();
$mailer->SMTPDebug = 1;
$mailer->Port = 25; //Indica a porta de conexão para a saída de e-mails
$mailer->Host = 'localhost';
$mailer->SMTPAuth = true; //define se haverá ou não autenticação no SMTP
$mailer->Username = 'mail@dominio.com'; //Informe o e-mai o completo
$mailer->Password = '*******'; //Senha da caixa postal
$mailer->FromName = 'nome'; //Nome que será exibido para o destinatário
$mailer->From = 'mail@dominio.com'; //Obrigatório ser a mesma caixa postal indicada em "username"
$mailer->WordWrap = 50;
$mailer->AddAddress($email); //Destinatários
$mailer->Subject = 'Confirmação de Registo - dominio.com';
$mailer->Body($mensagem);
$mailer->AddReplyTo($email,$nome);
if(!$mailer->Send())
{
echo "Message was not sent";
echo "Mailer Error: " . $mailer->ErrorInfo; exit; } por favor verifique e sigas as instruções!";
}
}else{
echo "<strong>ERRO:</strong><br />";
echo "O endereço de email [ <strong><em>".$email."</em></strong> ] que está tentando utilizar não é válido.<br />";
echo "Por favor, utilize um email válido.<br /><br />";
include "formulario.php";
}
}
}
}
?>
já testei o envio de email sem ser por form e o email é enviado direito, só assim é que não envia
agradeço a vossa ajuda.
Carregando comentários...