Este projeto é um microsserviço backend desenvolvido em Java utilizando Spring Boot para gerar e enviar relatórios por email utilizando a Oracle Cloud.
-
Conta na Oracle Cloud: Para inicializar o projeto, é necessário criar uma conta gratuita na Oracle Cloud.
-
Gerar API Key:
- Acesse o Oracle Cloud Console.
- Vá para "Identity & Security" > "Users".
- Selecione seu usuário.
- Vá para "API Keys" e clique em "Add API Key".
- Baixe o arquivo key.pem e guarde em um local seguro.
-
Configurar a API Key:
-
Na raiz do projeto, crie uma pasta chamada
.oci
. -
Dentro da pasta
.oci
, crie um arquivo chamadoconfig
com as seguintes informações:[DEFAULT] user=<seu usuário> fingerprint=<seu fingerprint> tenancy=<seu tenancy> region=<sua região> key_file=<caminho para o key.pem>
-
- Busque pelo serviço de Bucket do Object Storage (utilize a barra de pesquisa)
- Clique em Create Bucket
- Nomeie seu bucket como quiser, este nome será usado na propriedade bucket.name do application.properties.
- Selecione o bucket criado para encontrar a informação do namespace que deverá ser preenchido no bucket.namespace do application.properties.
- O arquivo report.html será usário como exemplo nesta aplicação e está salvo na raiz do projeto.
- Ainda no serviço de Bucket, faça o upload do arquivo em Objects. É aqui que se inclui o arquivo que será enviado pelo serviço de email.
- Habilite o serviço Email Delivery na Oracle Cloud (busque na barra de pesquisa por 'email')
- Em List Scope, selecione o Compartment (pode ser root)
- Inclua o email responsável pelo envio em Approved Senders. Recomenda-se utilizar o mesmo e-mail do usuário cadastrado.
- Salve o usuário e senha gerados, disponíveis em OCID.
- Em Configuration há os valores do endpoint SMPT e a porta.
- Renomeie o arquivo 'blank_application_properties' para application.properties e preencha os campos correspondentes à sua conta da Oracle.
Adicione as seguintes dependências no seu arquivo pom.xml
:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-addons-resteasy-client-configurator</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-objectstorage</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-core</artifactId>
<version>3.44.4</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-bom</artifactId>
<version>3.44.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
<version>3.44.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>