All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.com.simpli.ws.AwsSES.kt Maven / Gradle / Ivy

package br.com.simpli.ws

import com.amazonaws.auth.AWSCredentialsProvider
import com.amazonaws.auth.AWSStaticCredentialsProvider
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
import com.amazonaws.auth.PropertiesCredentials
import com.amazonaws.regions.Region
import com.amazonaws.regions.Regions
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder
import com.amazonaws.services.simpleemail.model.SendEmailRequest
import com.amazonaws.util.ClassLoaderHelper.getResourceAsStream

/**
 *
 * @author ricardoprado
 */
class AwsSES  {

    private val provider: AWSCredentialsProvider
    private var sesClient: AmazonSimpleEmailService

    constructor(region: String, credentialsFileName: String = "/AwsCredentials.properties") :
            this(Regions.fromName(region.toLowerCase().replace('_', '-')), credentialsFileName)

    @JvmOverloads
    constructor(region: Regions = Regions.US_EAST_1, credentialsFileName: String = "/AwsCredentials.properties") {

        provider = try {
            AWSStaticCredentialsProvider(PropertiesCredentials(getResourceAsStream(credentialsFileName)))
        } catch (e: Exception) {
            DefaultAWSCredentialsProviderChain()
        }

        sesClient = AmazonSimpleEmailServiceClientBuilder.standard()
            .withRegion(region)
            .withCredentials(provider)
            .build()
    }


    fun setRegion(region: Region) {
        sesClient = AmazonSimpleEmailServiceClientBuilder.standard()
            .withRegion(region.name)
            .withCredentials(provider)
            .build()
    }

    fun sendEmail(request: SendEmailRequest) {
        sesClient.sendEmail(request)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy