Jump to content
wneo

PHPmailer - liberar segurança no gmail

Recommended Posts

Olá!

 

Pessoal, estou utilizando o phpMailer para envio de email. O gmail está com uma segurança automática que evita o recebimento. Então fica necessário que o usuário modifique essa configuração para liberar o recebimento.

 

Vocês sabem alguma forma de configurar o código pra evitar isso automaticamente?

	$mail = new PHPMailer();
	$mail2 = new PHPMailer();

	/* ................................ Receber solicit ................................... */    
    
	$mail->Username = "email"; // your GMail user name
    $mail->Password = "senha"; 
	
    $mail->AddAddress("email","Tesste"); // recipients email
   
    $mail->FromName = $email;	 // readable name

    $mail->Subject = $nome;
	$mail->isHTML(true);
    $mail->Body    = $receber_solicit; 
	
    //-----------------------------------------------------------------------

    $mail->Host = "smtp.gmail.com"; // GMail
    $mail->Port = 587;
    $mail->IsSMTP(); // use SMTP
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->From = $mail->Username;
    if(!$mail->Send())
        echo "Mailer Error: " . $mail->ErrorInfo;
    else
        echo "Mensagem enviada";
	
	/* ............................... /Receber solicit ................................... */    
	
	/* ********************************************************************* */    
	
	/* ............................... Enviar resposta ................................... */    
	
	$mail2->Username = "email"; // your Gmail2 user name
    $mail2->Password = "senha"; 
	
    $mail2->AddAddress($email); // recipients email2	
   
    $mail2->FromName = 'Empresa';	 // readable name

    $mail2->Subject = 'Agradecemos o seu contato!';
	$mail2->isHTML(true);
    $mail2->Body    = $enviar_resposta_auto; 
	
    //-----------------------------------------------------------------------

    $mail2->Host = "smtp.gmail.com"; // Gmail2
    $mail2->Port = 587;
    $mail2->IsSMTP(); // use SMTP
    $mail2->SMTPAuth = true; // turn on SMTP authentication
    $mail2->From = $mail2->Username;
    if(!$mail2->Send())
        echo "mailer Error: " . $mail2->ErrorInfo;
    else
        echo "Mensagem enviada";
	
	/* .............................. /Enviar resposta ................................... */    

 

Share this post


Link to post
Share on other sites
4 horas atrás, gabrieldarezzo disse:

Da uma olhada nisso:

imap.png

Sim.. nesse caso o usuário acessando sua configuração e alterando manualmente..

gostaria de uma solução no código, para que o usuário não tivesse essa necessidade..

Share this post


Link to post
Share on other sites

Ainda n entendi então.

O problema seria o disparo do e-mail?

Ou chegando no gmail das pessoas em categorias como 'Anuncios' - 'Spam'?

Share this post


Link to post
Share on other sites
2 horas atrás, gabrieldarezzo disse:

Ainda n entendi então.

O problema seria o disparo do e-mail?

Ou chegando no gmail das pessoas em categorias como 'Anuncios' - 'Spam'?

Quando chega no gmail.

Em sua primeira vez, fica uma mensagem na caixa de entrada, como se alguem estivesse tentando invadir..

Então você libera nas configurações e envio normaliza...

Queria evitar essa necessidade por parte do usuário ter que fazer essa manobra.. e sim o código já resolver a comunicação com o gmail...

Share this post


Link to post
Share on other sites

Eu continuo em dúvida.

 

Você está disparando pelo Gmail?

Já olhou a documentação do PHP Mailer a respeito de disparo pelo Gmail?

Parece q tem uma área especialmente pra isso.

 

Share this post


Link to post
Share on other sites
Em 20/04/2017 at 19:29, gabrieldarezzo disse:

Eu continuo em dúvida.

 

Você está disparando pelo Gmail?

Já olhou a documentação do PHP Mailer a respeito de disparo pelo Gmail?

Parece q tem uma área especialmente pra isso.

 

Disparo através de um site web...

Com objetivo de receber o conteudo em uma caixa de entrada gmail...

Share this post


Link to post
Share on other sites

Você está disparando pelo Gmail?

 

 

SIM??

Não?



 

Deixa eu reformular a pergunta...

 

Você está disparando por um EMAIL do Gmail utilizando o seu site?

 

Já olhou a documentação do PHP Mailer a respeito de disparo pelo Gmail?

Share this post


Link to post
Share on other sites

A partir de dezembro de 2014, o Google começou a impor um mecanismo de autenticação chamado XOAUTH2 baseado no OAuth2 para acesso a seus aplicativos, incluindo o Gmail. (Fonte)
 

A maneira mais fácil de permitir que o PHPMailer utilize o SMTP do Gmail é dando permissão de acesso para "aplicativos menos seguros". Basta seguir esse tutorial.
 

A partir da versão 5.2.11, o PHPMailer passou a aceitar autenticação XOAUTH2, porém necessita da versão 5.5 ou superior do PHP. Caso prefira, é só seguir esse tutorial (em inglês).

 

  • +1 2

Share this post


Link to post
Share on other sites
Em 27/04/2017 at 14:57, gabrieldarezzo disse:

Você está disparando pelo Gmail?

 

 

SIM??

Não?



 

Deixa eu reformular a pergunta...

 

Você está disparando por um EMAIL do Gmail utilizando o seu site?

 

Já olhou a documentação do PHP Mailer a respeito de disparo pelo Gmail?

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

*Sim, disparando por um email do Gmail utilizando meu site.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rodbacana
      Boa noite senhores(a),
       
      estou iniciando agora com react native e firebase, estou tentando criar uma aplicação 
      onde você loga com e-mail e senha, logo após irá aparecer uma lista com as ações da bolsa de valor pra que você possa escolher uma delas.
      Quando clicar sobre qualquer uma, será exibido um gráfico com as oscilações, e o usuário poderá criar um alerta que quando a ação atingir uma valor(seja ele positivo ou negativo)
      o celular dispare uma alerta.
       
      A questão é: a tela de login e as validações, eu consegui fazer. Mas não faço a mínima idéia de como criar os gráficos baseados no consumo de uma api rest que eu tenho aqui.
       
      Alguém pode me ajudar ?
       
    • By alisonalves
      Coloquei este código "$arquivo = $_FILES['arquivo'];" no meu phpmailer para anexar arquivos à mensagem mas não está funcionando. Alguém pode me ajudar a enxergar onde estou errando? O códig completo do phpmailer segue abaixo.
       
      <?php # Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer require_once("class.phpmailer.php"); require_once("class.smtp.php"); # Inicia a classe PHPMailer $mail = new PHPMailer(); # Define os dados do servidor e tipo de conexão $mail->IsSMTP(); // Define que a mensagem será SMTP $mail->Host = "email-ssl.com.br"; # Endereço do servidor SMTP $mail->Port = 587; // Porta TCP para a conexão $mail->SMTPAutoTLS = false; // Utiliza TLS Automaticamente se disponível $mail->SMTPAuth = true; # Usar autenticação SMTP - Sim $mail->Username = 'contato@xx.com.br'; # Usuário de e-mail $mail->Password = 'xxx'; // # Senha do usuário de e-mail # Define o remetente (você) $mail->From = "contato@xxx.com.br"; # Seu e-mail $mail->FromName = "E-mail de contato"; // Seu nome # Define os destinatário(s) $mail->AddAddress('contato@xxx.com.br', 'Fulano da Silva'); # Os campos podem ser substituidos por variáveis #$mail->AddAddress('webmaster@nomedoseudominio.com'); # Caso queira receber uma copia #$mail->AddCC('ciclano@site.net', 'Ciclano'); # Copia #$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); # Cópia Oculta // Definição de HTML/codificação $mail->IsHTML(true); // Define que o e-mail será enviado como HTML $mail->CharSet = 'utf-8'; // Charset da mensagem (opcional) // DEFINIÇÃO DA MENSAGEM $mail->Subject = "Classificados"; // Assunto da mensagem $mail->Body .= " titulo: ".nl2br($_POST['titulo'])."<br>"; // Texto da mensagem $mail->Body .= " valor: ".nl2br($_POST['valor'])."<br>"; // Texto da mensagem $mail->Body .= " cidade: ".nl2br($_POST['cidade'])."<br>"; // Texto da mensagem $mail->Body .= " estado: ".nl2br($_POST['estado'])."<br>"; // Texto da mensagem $mail->Body .= " area: ".nl2br($_POST['area'])."<br>"; // Texto da mensagem $mail->Body .= " num_lugares: ".nl2br($_POST['num_lugares'])."<br>"; // Texto da mensagem $mail->Body .= " aluguel_valor: ".nl2br($_POST['aluguel_valor'])."<br>"; // Texto da mensagem $mail->Body .= " aluguel_contrato: ".nl2br($_POST['aluguel_contrato'])."<br>"; // Texto da mensagem $mail->Body .= " num_funcionarios: ".nl2br($_POST['num_funcionarios'])."<br>"; // Texto da mensagem $mail->Body .= " iptu: ".nl2br($_POST['iptu'])."<br>"; // Texto da mensagem $mail->Body .= " faturamento: ".nl2br($_POST['faturamento'])."<br>"; // Texto da mensagem $mail->Body .= " site: ".nl2br($_POST['site'])."<br>"; // Texto da mensagem $mail->Body .= " detalhes: ".nl2br($_POST['detalhes'])."<br>"; // Texto da mensagem $mail->Body .= " nome: ".nl2br($_POST['nome'])."<br>"; // Texto da mensagem $mail->Body .= " telefone: ".nl2br($_POST['telefone'])."<br>"; // Texto da mensagem $mail->Body .= " email: ".nl2br($_POST['email'])."<br>"; // Texto da mensagem $arquivo = $_FILES['arquivo']; # Define os dados técnicos da Mensagem $mail->IsHTML(true); # Define que o e-mail será enviado como HTML #$mail->CharSet = 'iso-8859-1'; # Charset da mensagem (opcional) # Define os anexos (opcional) #$mail->AddAttachment("c:/temp/documento.pdf", "documento.pdf"); # Insere um anexo # Envia o e-mail $enviado = $mail->Send(); # Limpa os destinatários e os anexos $mail->ClearAllRecipients(); $mail->ClearAttachments(); # Exibe uma mensagem de resultado (opcional) if ($enviado) { echo "E-mail enviado com sucesso!"; } else { echo "Não foi possível enviar o e-mail."; echo "<b>Informações do erro:</b> " . $mail->ErrorInfo; } ?>  
    • By Motta
      Estou tentando mandar uma "Blind Copy" pelo nossa Procedure de envio de email , pela documentação estaria ok , mas não está enviando nem gerando qualquer erro , o código está abaixo , os itens sensíveis foram trocados por "x"
      O que posso estar fazendo de errado ?
      SP :
       
      create or replace PROCEDURE ENVIA_EMAIL_CLOBHBC (ds_email_origem_w varchar2, ds_email_destino_p varchar2, ds_assunto varchar2, p_attach_clob IN CLOB DEFAULT NULL, p_httm in varchar2 default 'S', p_log out varchar2, p_nome_destino in varchar2 default null) is l_step PLS_INTEGER := 12000; ds_smtp_w varchar2(20) := 'xx.xx.x.xx'; /* Abre conex?o SMTP e HTTP */ CONEXAO UTL_SMTP.CONNECTION; vs_origem varchar2(100) := ds_email_origem_w; -- vs_para varchar2(100); vs_cc varchar2(100); -- PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS BEGIN UTL_SMTP.WRITE_DATA(CONEXAO, name || ': ' || header || UTL_TCP.CRLF); END; BEGIN /* Abre conex?o com um Servidor SMTP(Simple Mail Transfer Protocol), porta padr?o SMTP e 25 */ CONEXAO := utl_smtp.open_connection (ds_smtp_w,25); UTL_SMTP.HELO (CONEXAO, ds_smtp_w); /* Endereco do servidor de SMTP */ --utl_smtp.command (CONEXAO, 'AUTH LOGIN'); --utl_smtp.command (CONEXAO, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((ds_user_id_w))))); --UTL_SMTP.COMMAND (CONEXAO, UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW((DS_SENHA_SMTP_W))))); UTL_SMTP.MAIL (CONEXAO, ('<' || vs_origem || '>')); /* E-mail de quem esta mandando */ -- se estiver em lista separado por ";" manda para o 1º como "para" e para o 2º como CC (copia) /* Para quem vou mandar */ IF INSTR(ds_email_destino_p,';') = 0 THEN vs_para := ds_email_destino_p; UTL_SMTP.RCPT (CONEXAO, ('<' || ds_email_destino_p || '>')); /* Para quem vou mandar */ ELSE vs_para := SUBSTR(ds_email_destino_p,1,INSTR(ds_email_destino_p,';')-1); vs_cc := SUBSTR(ds_email_destino_p,INSTR(ds_email_destino_p,';')+1,length(ds_email_destino_p)); UTL_SMTP.RCPT (CONEXAO, ('<' || vs_para || '>')); /* Para quem vou mandar original */ UTL_SMTP.RCPT (CONEXAO, ('<' || vs_cc || '>')); /* Para quem vou mandar copia */ END IF; UTL_SMTP.OPEN_DATA(CONEXAO); If upper(p_httm) <> 'S' Then send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))); Else --send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))|| '?='); send_header('Subject',UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))); end if; If upper(p_httm) <> 'S' Then UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF); Else UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF ); end if; send_header('From',ds_email_origem_w); --se denominou o destino formata o envio , senão vai o proprio email --tratamento diferente do "from" pois este é em geral dinamico --feito pela stored procedure chamadora if trim(p_nome_destino) is null then send_header('To',vs_para); else send_header('To','"'||trim(p_nome_destino)||'" <'||vs_para||'>'); end if; If Trim(vs_cc) is not null Then--copia (nao formata o destino) send_header('CC',vs_cc); end if; send_header('BCC',vs_origem);---<<< A LINHA COM PROBLEMA PARECE SER ESTA *********************** FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step) LOOP UTL_SMTP.WRITE_DATA(CONEXAO, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1)); END LOOP; UTL_SMTP.CLOSE_DATA(CONEXAO); UTL_SMTP.QUIT (CONEXAO); Exception when OTHERS then utl_smtp.quit (conexao); p_log := 'Erro: ' || SQLERRM; END ENVIA_EMAIL_CLOBHBC;
    • By Hotdoug
      Tenho ao meu ponto de vista uma "boa" ideia de app para ganhar dinheiro e prêmios, mas não entendo nada sobre desenvolvimento do mesmo. 
      Gostaria de conhecer pessoas que saibam desenvolver e trocar idéias, nada mais que isso. Quem sabe possa surgir um Aplicativo reconhecido mundialmente.
    • By camargo.2018
      Olá, tudo bem?
      alguém pode me ajudar tipo
      TIPO=Produto&ID=4|TIPO=Produto&ID=4|TIPO=Domain&name=canargo&tls=.com|TIPO=Produto&ID=4 Quero pegar isso e transformar nisso
      for($i = 0; $i <= $quantidade;$i++){ if($produto[tipo][$i] == "Produto"){ $idProduto[$i] = $produto[ID][$i]; }elseif($produto[tipo][$i] == "Domain"){ $NameDomain[$i] = $produto[name][$i]; $TlsDomain[$i] = $produto[tls][$i]; } } alguém pode me ajudar ou se conhece outro método. 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.