Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BrunoBit

PHP email em grande quantidade

Recommended Posts

Fala rapaziada, tudo joia?

Gostaria de saber de acordo com a experiência de vocês, qual método melhor pra enviar grandes quantidades de email por dia utilizando php? Com relação ao conteúdo dos emails não é spam, é pra envio de faturas pra clientes mensalmente.

PHP mailer será que é uma boa opção? Ou utilizar alguma api de algum site do tipo mail chimp ou similar.

 

Valeu pessoal, desde já agradeço a contribuição e fiquem com Deus.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra não cair no spam, você tem que enviar um de cada vez, principalmente se for fatura, ou vai enviar faturas com cópia pra todo mundo ?:

 

Nesse caso, enviando um de cada vez, mesmo que de forma automatizada com algum laço de loop, phpmailer é mais do que o suficiente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande @AnthraxisBR, obrigado pela sua dica, terei que enviar um de cada vez mesmo, com laço de loop será que ainda cai na blacklist dos provedores de emails?

E não tinha pensado na possibilidade de enviar cópia pra todos uma única vez, mas vou pensar em alguma forma de adaptar caso a utilização de loop dê algum problema com blacklist por causa de repetição ou algo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não está em envie um de cada vez, isso não vai resolver o seu problema, experimenta enviar uns 500 e-mails para o hotmail e veja o seu domínio/IP entrar na blacklist. 

Uma das estratégias que as empresas usam para combater o spam é verificar quantos e-mails estão sendo recebidos de um determinado IP, por esse motivo quando você contrata um SMTP profissional você tem a opção de contratar IPs adicionais que são rotacionados, assim em vez de enviar X e-mails com o mesmo IP você envia X e-mails divididos por Y IPs que você tenha contratado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ESerra realmente não pensei nisso!!

 

Mas precisa ser uma quantidade muito grande para cair na blacklist não ?

Digo isso pois no meu trabalho anterior eu fiz um mecanismo de enviar faturas somente com o  phpMailer sem nada a mais no servidor, com +- 380 faturas/mês, um negócio bem simples, rodava um loop, buscava os com vencimentos menor que 5  dias uteis, e enviava pra todo mundo um de cada vez, nunca deu nenhum problema com spam, exceto para os clientes usavam provedor de e-mail da uol, pra eles sempre caia como spam. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso do UOL eles enviam um e-mail ao remetente, quando você "confirma" nesse e-mail ele para de encaminhar para o spam.

 

Só tive problemas com o hotmail, no caso deles houve um cliente que caiu na blacklist com menos de 150 e-mails enviados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show de bola @ESerra, muito obrigado pela sua contribuição também. Essa parte de envio de faturas realmente é bem delicado e é uma parte fundamental, não sabia desse lance de ips, é bom ficar ligado nos detalhes mesmo.

 

Obrigadão rapaziada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre envios de e-mails recomendo a leitura sobre soft e hard bounces.

Tendo esse conceito você consegue lidar e comprender melhor sobre as blacklist de servidores SMTP

 

Como citado acima, o "problema" do e-mail está no IP do remetente.

O IP diz ao servidor se você é um spamer ou não através da reputação dele na rede.

 

Como adquirir essa reputação?

Adicionarem o seu e-mail remetente como confiável ou não

Cadastrar o recebimento na caixa de entrada

Não deletar o seu e-mail sem sequer abri-lo.

 

Essas "pequenas" ações transformam o IP do seu servidor num IP com boa ou má reputação na rede!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.