eu sou administrador de um sistema no qual possui um banco de dados(MySQL) com usuarios cadastrados, e uma pagina em php na qual esses usuarios podem abrir suas solicitacoes.
A cada solicitacao respondida para o usuario este script em PHP vai no banco de dados e coleta o e-mail cadastrado e envia, o problema é que o PHP esta usando o sendmail e eu não consigo capturar/descobrir o email utilizado por ele para enviar essas respostas.
então, o que eu quero fazer:
- forcar autenticacao SMTP no meu script, mas não estou conseguindo interagir a parte do codigo
que chama o email no banco, com o envio da mensagem.
Segue abaixo o codigo:
//autenticacao smtp
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.dominio.com.br";
$mail->SMTPAuth = true;
$mail->Username = "USUARIO";
$mail->Password = "SENHA";
$mail->From = "EMAIL_REMETENTE@EMAIL.COM.BR";
$mail->FromName = "Solicitacao";
$mail->AddAddress("emaildestino@email.com.br", "nome");
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
//O codigo abaixo envia um e-mail para o usuario que abriu a solicitacao
$strSQL = "SELECT email FROM usuarios WHERE login = '" . $campo_chamado["login_user"] . "'";
$rsEmailUsuario = mysql_query($strSQL, $Conexao) or die("não foi possivel recuperar o e-mail do usuario!");
if (mysql_num_rows($rsEmailUsuario)) {
$campo_usuario = mysql_fetch_array($rsEmailUsuario);
$corpo = "Sua solicitacao #$id foi atendida:\n\n";
$corpo .= "Descricao informada na abertura da solicitacao:\n";
$corpo .= stripslashes($campo_chamado["desc_cham"]) . "\n\n\n";
$corpo .= "Dados do atendimento:\n\n";
$corpo .= "Atendida em: " . date("d/m/Y H:i:s") . " por " . $_SESSION["login"] . "\n\n";
if ($obs) {
$corpo .= "Observacoes tecnicas:\n";
$corpo .= "$obs\n\n";
}
$corpo .= "--------------------------------------------------------------------\n";
$corpo .= "Mensagem automatica";
if ($_SESSION["email"]) {
$fromname = ucfirst(strtolower($_SESSION["login"]));
$from = $_SESSION["email"];
}
else {
$fromname = "Sistema de Solicitacoes";
$from = "email_segunda_opcao@email.com.br";
}
send_mail($campo_usuario["email"], "Confirmacao de atendimento no Sistema de Solicitacoes ", $corpo, $fromname, $from);
Eu gostaria de juntar a parte que envia email com autenticacao smtp com a parte que busca o email do usuario no banco de dados. Espero ter esclarecidos.
Pergunta
Thiago Top
Pessoal,
eu sou administrador de um sistema no qual possui um banco de dados(MySQL) com usuarios cadastrados, e uma pagina em php na qual esses usuarios podem abrir suas solicitacoes.
A cada solicitacao respondida para o usuario este script em PHP vai no banco de dados e coleta o e-mail cadastrado e envia, o problema é que o PHP esta usando o sendmail e eu não consigo capturar/descobrir o email utilizado por ele para enviar essas respostas.
então, o que eu quero fazer:
- forcar autenticacao SMTP no meu script, mas não estou conseguindo interagir a parte do codigo
que chama o email no banco, com o envio da mensagem.
Segue abaixo o codigo:
//autenticacao smtp require("class.phpmailer.php"); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "smtp.dominio.com.br"; $mail->SMTPAuth = true; $mail->Username = "USUARIO"; $mail->Password = "SENHA"; $mail->From = "EMAIL_REMETENTE@EMAIL.COM.BR"; $mail->FromName = "Solicitacao"; $mail->AddAddress("emaildestino@email.com.br", "nome"); if(!$mail->Send()) { echo "Message could not be sent. <p>"; echo "Mailer Error: " . $mail->ErrorInfo; exit; } //O codigo abaixo envia um e-mail para o usuario que abriu a solicitacao $strSQL = "SELECT email FROM usuarios WHERE login = '" . $campo_chamado["login_user"] . "'"; $rsEmailUsuario = mysql_query($strSQL, $Conexao) or die("não foi possivel recuperar o e-mail do usuario!"); if (mysql_num_rows($rsEmailUsuario)) { $campo_usuario = mysql_fetch_array($rsEmailUsuario); $corpo = "Sua solicitacao #$id foi atendida:\n\n"; $corpo .= "Descricao informada na abertura da solicitacao:\n"; $corpo .= stripslashes($campo_chamado["desc_cham"]) . "\n\n\n"; $corpo .= "Dados do atendimento:\n\n"; $corpo .= "Atendida em: " . date("d/m/Y H:i:s") . " por " . $_SESSION["login"] . "\n\n"; if ($obs) { $corpo .= "Observacoes tecnicas:\n"; $corpo .= "$obs\n\n"; } $corpo .= "--------------------------------------------------------------------\n"; $corpo .= "Mensagem automatica"; if ($_SESSION["email"]) { $fromname = ucfirst(strtolower($_SESSION["login"])); $from = $_SESSION["email"]; } else { $fromname = "Sistema de Solicitacoes"; $from = "email_segunda_opcao@email.com.br"; } send_mail($campo_usuario["email"], "Confirmacao de atendimento no Sistema de Solicitacoes ", $corpo, $fromname, $from);Eu gostaria de juntar a parte que envia email com autenticacao smtp com a parte que busca o email do usuario no banco de dados. Espero ter esclarecidos.
Desde já, obrigado.
[]s, Thiago
Editado por Thiago TopLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.