[Resolvido]Inserir string na posição desejada

4 respostas
jv.nicocelli

Pessoal,

Estou desenvolvendo um sistema web onde será necessário enviar e-mail padrões. A mensagem que será enviada já está previamente cadastrada no banco de dados.

Quando o usuário foi enviar o e-mail, o sistema irá buscar a mensagem e criará um login e senha para acesso no sistema.

Eu preciso enviar esse login e senha junto com a mensagem enviada.

Ai que está a minha dúvida, de que forma que irei inserir o login e a senha na mensagem.

Estava pensando em uma forma de colocar uma variável na mensagem cadastrada e substituir essa variável quando o usuário for criado…

Alguém sabe uma forma melhor ou mais prática de fazer isso?

4 Respostas

E

Quando preciso mandar alguma coisa que é padronizada mas precisa ter alguns campos preenchidos, (como um “mail merge”, que é exatamente o que você quer fazer), e preciso de ficar mudando frequentemente esse padrão, costumo usar um pacote chamado Velocity.

http://velocity.apache.org/

A idéia é você carregar o HTML de um arquivo anotado com algumas tags do Velocity, preparar um objeto e fazê-lo preparar uma String contendo o arquivo HTML com as tags substituídas pelas informações (destinatário, endereço etc.) que você quiser.

sergiotaborda

nicocelli:
Pessoal,

Estou desenvolvendo um sistema web onde será necessário enviar e-mail padrões. A mensagem que será enviada já está previamente cadastrada no banco de dados.

Quando o usuário foi enviar o e-mail, o sistema irá buscar a mensagem e criará um login e senha para acesso no sistema.

Eu preciso enviar esse login e senha junto com a mensagem enviada.

Ai que está a minha dúvida, de que forma que irei inserir o login e a senha na mensagem.

Estava pensando em uma forma de colocar uma variável na mensagem cadastrada e substituir essa variável quando o usuário for criado…

Alguém sabe uma forma melhor ou mais prática de fazer isso?

Você pode usar uma biblioteca para isso como o Velocity que já foi falado ou o Freemarker.

Se vc quiser fazer na mão, vc faz exactamente o que falou. cria uma variável e depous usar String.replace.
Para coisas simples funciona. Mas vc precisa caracterizar a variável de uma forma que não seja possivel confundir com texto normal. Normalmente se usa o tradicional ${} ha volta da palavra chave por exemplo ${nome}.

O bom das libs é que lhe deixam manipular beans e aessar as propriedades o que reduz o trabalho e vc pode fazer ${cliente.nome}

Eu não pensaria duas vezes e usaria uma lib. Pode parecer simples, mas logo vc irá receber requisitos para coisas mais complexas como escrever coisas que são listas e i o String.replace não rola.

jv.nicocelli

Pessoal, desculpa na demora do retorno, só consegui ver agora.

Mais isso mesmo que estava procurando, vou dar uma estuda no assunto.

Pelo que vi, aqui no guj tem um bom artigo sobre o assunto . http://www.guj.com.br/articles/18

Obrigado pela ajuda.

Abraço

jv.nicocelli

Pessoal, obrigado pelas respostas.

Eu já consegui resolver essa situação utilizando o velocity.

Pesquisando, eu encontrei um exemplo integrando o velocity com Spring nesse link http://www.javabeat.net/2008/11/email-integration-in-spring-framework/ .

Criado 15 de agosto de 2012
Ultima resposta 31 de ago. de 2012
Respostas 4
Participantes 3