Saber se o email foi aberto pelo usuario

Pessoal,
Achei uma aplicação na internet que envia email’s para uma lista de pessoas, e logo após eu já posso extrair relatórios sobre quem abriu o email, quem clicou no email e por ai vai, alguem sabe me dizer se seria possível fazer isso com a javamail ou alguma outra biblioteca em java?
Estou na duvida principalmente sobre como saber se o email foi aberto ou não, pesquisei sobre os listeners do javamail, mas nenhum faz isso, e agora, alguem imagina o que pode me ajudar?

Cara, aprendi através dos e-mails que recebo em massa.
Tu coloca o endereço da sua aplicação no SRC da tag :

Nesta página tu coloca a imagem e um código pra inserir a informação na tua persistência de dados sabendo exatamente quem recebeu.

Pronto. Mas os sistemas web já sacaram isso e as chances de ser totalmente funcional não são grandes, mas é a prática mais comum dos web marketing (diga-se de passagem: SPAM).

Acredito que não tenha possibilidade e nem existe de saber se o usuario abriu seu email ou não.

o que existe é a mensagem de confirmação… o usuario ao receber o email, vem junto uma mensagem de confirmação no qual se ele digitar sim é encaminhado uma resposta para você automatica… falando “ele recebeu o email”, se clicar em não, você nunca vai saber…

assim como outlook, terra, evolution… etc.

seria isso que você quer?!

pois isso não fica claro que o usuario recebeu ou não… eu geralmente, sempre aperto em não nessas mensagens hehehe

tchauzin!

Oi Lina,
mas não é isso não, mas que é possivel é, pois a aplicação que está em http://www.campaignmonitor.com/ faz justamente isso, sem nem ao menos precisar clicar em imagem nenhuma que vá junto ao email e nem responder mensagem de confirmação. Ele simplesmente sabe se o cara abriu ou nao o email, loucura né, mas eu teste e comprovei que realmente a coisa funciona, agora é saber como.
Agora a ideia do ajaxinaction foi realmente boa, já tinha ouvido falar nisso ai mas agora é que saquei realmente, desta forma, nem é preciso que o cara clique na imagem né, pois na realidade a imagem nem existe. Acho que essa deve ser a unica alternativa realmente.

Mas, me veio uma duvida aqui quanto a esta solução utilizando imagem, e se a pessoa baixar o email no thunderbird por exemplo e só abri-la depois sem conexao na internet, entao esta funcionalidade da imagem me avisar que o cara abriu o email nao funciona né. Outra questão é se o leitor do cara abrir a mensagem em formato texto e nao html, dai também nao vai funcionar né. Enfim, alguem conhece alguma outra solução mais eficiente?

exatamente por isto não existe uma solução 100% eficaz …
no Outlook 2007 por exemplo, ele te pergunta se tu quer ou não baixar as imagens externas do e-mail, se eu clicar em não, ele não baixa …
a mesma coisa o gmail …

Outra questão.
Para saber se o email foi entregue ou nao, eu implementei a interface TransportListener, na implementação dos metodos desta interface me é retornado se o email foi validado no servidor do destinatario e a mensagem entregue. No entanto existe aqui um porém, que são servidores de email maiores como o Gmail, apesar do email ser inexistente, eles sempre retornam como email valido, imagino que isso seja para evitar que robos spams criem listas de emails validos automaticamente, mas entao, alguem sabe se é assim mesmo, existe outra forma de validar se o email informado existe realmente, se a mensagem foi entregue corretamente?

Resumindo:

As duas técnicas (usar um link, mais conhecido como “web bug”, e solicitar no header da mensagem o envio de uma mensagem de confirmação) existem, e não são 100% confiáveis.

Esse email que diz se foi aberto é conhecido por “patty mail”.

Se você precisa saber se um endereço de email é válido, só há uma maneira confiável: solicitar ao usuário que o cadastre, enviar um email para esse endereço que contém uma URL de confirmação, e somente efetivar o cadastro quando essa URL seja acessada.

Olá Thingol, obrigado pelos esclarecimentos. Agora só tenho mais duas dúvidas, para concluir.

Primeiro uma questao tecnica, é que quando eu envio na minha lista de destinatarios um email com endereço invalido e implemento o TransportListener, dai é me retornado pelo messagePartiallyDelivered(TransportEvent) que tal email nao é valido, até ai tudo certo, mas ele também avisa que os outros emails para os demais destinatarios (cujos emails são validos) nao foram entregues, porque isso? Alguem já passou por isso, onde se um é invalido entao ele nao entregua os demais?

E por ultimo, existe a previsao de mandar por exemplo uma lista imensa de emails para todos os clientes da empresa, dai que suponhamos que a lista seja de 10mil destinatarios, sei que se eu mandar isso tudo de uma vez só, a maquina provavelmente vai agachar no chão durante horas, além disso e mais preocupante é que o meu ip será colocado provavelmente também na lista de spammers, bloqueando qualquer outro email meu, há uma maneira de evitar isso, enfim, alguém sabe me indicar a melhor estratégia para implementar este tipo de funcionalidade de envio de campanha publicitária em massa?