Eu estou tentando enviar e-mails através do plugin do Vraptor, mas não estou conseguindo. Tenho 2 dúvidas:
1- Eu criei o arquivo production.properties e development.properties, conforme documentação. Mas quando tento mandar um e-mail aparece essa frase no log: Could not find the file ‘environment.properties’ to load. If you ask for any property, null will be returned.
Se o production.properties são as configurações no ambiente de produção e development.properties são no ambiente de desenvolvimento, pra qual ambiente são as configurações do environment.properties?
2- Eu criei o tal arquivo environment.properties, mas tenho a impressão que as configurações que to definindo não estão fazendo diferença. O plugin está usando um mock mail mesmo quando eu defino a propriedade:
vraptor.simplemail.send_real_email = true
Além disso, no mock mail aparece “from: null” mesmo eu setando:
vraptor.simplemail.main.from = no-reply@myapp.com
As configurações que estou usando são as seguintes:
vraptor.simplemail.main.server = localhost
vraptor.simplemail.main.port = 25
vraptor.simplemail.main.tls = false
vraptor.simplemail.main.from = no-reply@myapp.com
vraptor.simplemail.send_real_email = true
“environment” significa “ambiente”. Quando a mensagem diz que não achou o “environment” quer dizer que não achou seu production.properties ou development.properties. Em que pasta estão esses arquivos?
Esses dados você tem que colocar em um arquivo production.properties caso seja para produção, logicamente. O resto já depende da maneira como irá enviar o email. Pela sua configuração, deve ser de algum smtp proprio da hospedagem.
Hmm, agora entendi o sentido de “environment.properties”. O estranho é que eu tinha criado os 2 arquivos: production.properties e development.properties. Tinha colocado na pasta src/main/resources. Tá certo?
E sobre as configurações, na verdade, quero enviar pelo serviço da Amazon SES. Mas não sei como configurar. Quais configurações que eu devo usar?
To testando aqui agora e o environment.properties não parece ser isso que você falou não. Quando eu coloco os arquivos production.properties e development.properties na pasta resources aparece a frase dizendo que não conseguiu localizar o environment.properties. Mas se eu crio um arquivo environment.properties e coloco nessa pasta, a mensagem num aparece mais.
http://www.vraptor.org/pt/docs/environment/
Você colocou no seu web.xml qual o ambiente que está usando?
<context-param>
<param-name>br.com.caelum.vraptor.environment</param-name>
<param-value>production</param-value>
</context-param>
Já sobre as configurações, você tem que da uma olhada na documentação da Amazon.
Se quiser pode testar com o outlook, por exemplo. Cria uma conta la e coloca essa configuração:
vraptor.simplemail.main.server = smtp.live.com
vraptor.simplemail.main.port = 587
vraptor.simplemail.main.tls = true
vraptor.simplemail.main.username = brucelee@outlook.com
vraptor.simplemail.main.password = ouooooooohhhh
vraptor.simplemail.main.from = brucelee@outlook.com
vraptor.simplemail.main.from.name = Mr. Lee
Consegui fazer funcionar \o/
Não consegui com as configurações do Outlook que você mandou, mas consegui com o serviço da Amazon SES.
Um detalhe que percebi é que o arquivo environment.properties é pra existir sim. Esse é o arquivo com as configurações padrões, na ausência de outros arquivos. Sem ele a gente recebe um warning.
E realmente estava faltando o trecho no web.xml. Mas uma coisa que eu não consegui e que seria muito bom é setar o ambiente de desenvolvimento e produção através de variáveis do sistema. Tentei criar conforme a documentação do Vraptor, mas ele não tá pegando o valor certo. Tem alguma ideia do que pode ser?
E pra quem quiser configurar para mandar pelo e-mail pela Amazon, vou dizer como fiz, já que tive muita dificuldade e levei muito tempo pra conseguir. Seria bom se essas informações tivessem na documentação so vraptor-simplemail.
Pra funcionar a gente precisa definir as seguintes propriedades no arquivo environment.properties:
mailer.implementation = br.com.caelum.vraptor.simplemail.aws.AmazonSESMailer
vraptor.simplemail.main.server = email-smtp.us-east-1.amazonaws.com
vraptor.simplemail.main.port = 25
vraptor.simplemail.main.tls = true
vraptor.simplemail.main.username = (preencher)
vraptor.simplemail.main.password = (preencher)
vraptor.simplemail.main.from = (preencher)
As propriedades username e password são geradas num serviço da Amazon chamado IAM. O usuário e senha gerados são diferentes do seu login e senha da AWS.
A propriedade from tem que ter um e-mail verificado pela AWS. Você pode verificar um e-mail pela interface da Amazon SES.
Além disso, é preciso criar um outro arquivo de configuração chamado AwsCredentials.properties. Nesse arquivo a gente tem que colocar 2 propriedades:
accessKey = (preencher)
secretKey = (preencher)
Essas keys podem ser geradas na página de Security Credentials da Amazon. Essas keys também são diferentes do usuário e senha da etapa anterior.
Vale a pena ler a documentação deles, principalmente pra entender como criar o username, password, accessKey e secretKey: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/setting-up-ses.html