Velocidade para envio de e-mails

12 respostas
N

Olá pessoal,

estou desenvolvendo um sistema de clipping de notícias em PHP, porém me deparei com uma rotina um tanto quanto pesada para o PHP, e gostaria de saber sobre a velocidade do java/jsp para esta rotina, vou tentar explicar um basico da rotina que possam ter uma idéia:

quando do cadastro do usuário, ele tem a possibilidade de escolher os meios de comunicação que deseja receber as notícias, tipo: Folha de São Paulo, Zero Hora, Correio do Povo, O Estadão, Gazeta Mercatil, dentre vários outros. Ou seja, o usuário receberá um e-mail com as opções que ele selecionou, sendo assim, seria enviado diariamente um e-mail personalizado para cada usuário cadastrado. Este e-mail tem formato html e a possibilidade de envio de imagens, sendo necessário que estas imagens sejam enviadas junto ao e-mail, para que os usuário possam visualizar este e-mail off-line.

Em resumo, seriam enviados e-mails um-a-um, o corpo da mensagem é montado dinamicamente, momentos antes de enviar o e-mail.

Gostaria, se possível, que vcs me falassem algo sobre a velocidade para o envio usando java/jsp.

Grato pela atenção!

12 Respostas

Paulo_Silveira

acho que o seu problema nao esta em java ou php, eh o algoritmo

se 1000 pessoas querem pegar veja e uol, e voce fica montando o HTML e puxando as imagens para esses 1000, sem reaproveitar, vai demroar seculos mesmo. Abrir conexao na net, puxar e fechar eh LENTISSIMO.

sugiro que voce pegue as noticias da veja, depois do uol, etc… guarda tudo no hd, ai ele vai montando, sem ter de puxar da net todas as vezes.

bem, nao sei se voce ja faz isso. se voce ja faz, java eh bom pra velocidade sim. melhor aidna, voce pode manter a conexao com o SMTP aberto e sair mandando os emails sem ter de refazer conexao, isso poupa muito tempo

N

o problema é montar um algoritmo que pode ter n variações de meios selecionados… pois eu tenho +/- 20 jornais… já pensou em quantas combinações diferentes eu terei que escrever ? e outra não são só jornais, tem revistas tbm, portais… e um usuário pode selecionar de 1 a todos meios de notícas que disponbilizo… é 1/2 irreal escrever este algoritmo de combinação…

Paulo_Silveira

nao eh nao. pra falar a verdade, eh MUITO simples.

porque voce pega os N jornais e revistas e graca no HD.

ai pra cada pedido, voce monta onthefly. montar ja com as cosias em HD (digo, serverside, nao na net), fica beeeeem rapido.

urubatan

e para cada e-mail que montar (se o usuário não tem a opção de escolher a ordem é claro)

você deixa o e-mail armazenado pronto no HD até o final do processamento.
caso outro usuário tenha a mesma preferencia, pega o que ja ta pronto :slight_smile:

N

bah, não sei se estou me explicando mal… vamos denovo:

a opção de montar um e-mail off-line, não tem como… pois para cada usuário varia os meios que ele quer receber…

tipo:

eu fui lá, cadastrei-me no sistema e selecionei os seguintes meios para receber no e-mail:

>> jornais

  • Folha de São Paulo
  • O Estadão
  • Zero Hora
    >> revistas
  • Veja
  • Isto É

só que nas opções de jornais eu tenho mais uns 20 e revistas mais umas 10…

daí outro camarada foi lá, cadastrou-se e selecionou:

>> jornais

  • Folha de São Paulo
  • O Estadão
  • Zero Hora
  • Correio do Povo
  • Gazeta Mercantil
    >> revistas
  • Veja
  • Isto É
  • Época

notem que já é outro e-mail…

então, será que entenderam pq não posso montar off este e-mail ?

Paulo_Silveira

nao, nao entendemos

porque voce pode.

apesar dos emails serem diferentes, voce pode montar por “partes”

Voce grava todos os jornais e revistas, ONline, atraves de URLConnections e tal.

depois, voce vai ter o uolNoticiasDeHoje.txt e o revistaVejaNoticiasDeHoje.txt (ou num StringBuffer, sei la)

depois, pra cada usuario, voce vai apenas somando os .txts, em OFF, o que reduz absurdamente as suas reconexoes pra pegar DENOVO as mesmas noticias e tal.

da para fazer assim?

D

Oque o Paulo falou esta correto é muito facil, vejamos:

Vc tem uma local em que cada usuario cadastrado tem a sua configuracao particular de email que gostaria de receber.

Em outro local as fontes ( nao meios ) de cada materia de email que vc vai coletar. Jornal A, B, C , … Z; Revista A,B,C, … Z;

Primeiro vc le todas as suas fontes do dia , jornal e revistas e armazena em seu HD (BufferDiario).

Depois e so pegar os usuarios de “Alberto a … Zacarias” e enviar-lhes as materias das fontes escolhidas, relendo-as direto do HD … correto ???

Dependendo do tamanho medio das matérias pode ate usar um buffer direto na memoria usando uma matriz de vetores.

N

bueno, eu entendo o que querem dizer…

porém, usando um conexão persistente a base mysql para esta tarefa, não sei se há possibilidade c/ jsp, creio que haja… eu não teria problemas em abrir várias vezes a conexão para fazer esta tarefa…

até pq meu sistema roda na servidor da locaweb…

Rafael_Steil

Conexoes persistentes sucks… nao usa isso pq so da pau… ainda mais com php… a documentacao diz que o php controla isso, mas pura mentira… eh so pra derrubar o server haueh

Rafael

N

Oi cara,

sei lá, já escrevi um chat sem refresh usando conexão persistente… mas rolava numa boa, sem derrubar o server…

Rafael_Steil

O problema eh qdo comeca a ter um numero grande de requisicoes… como todas as conexoes sao persistentes, chega uma hora que o servidor nao aguenta mais… entao pode acontecer do banco de dados comecar a dar connection refused ou o servidor todo apresentar problemas devido a falta de recursos.

Rafael

N

Ah sim,

isso eu concordo… mas como no meu caso, o sistema abrirá uma única conexão persistente… creio que não haja maiores problemas…

Criado 5 de novembro de 2002
Ultima resposta 5 de nov. de 2002
Respostas 12
Participantes 5