Packages
krug
1.1.20
2.0.36
2.0.35
2.0.34
2.0.33
2.0.32
2.0.31
2.0.30
2.0.29
2.0.27
2.0.26
2.0.25
2.0.24
2.0.23
2.0.22
2.0.20
2.0.19
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.1
2.0.0
1.1.53
1.1.52
1.1.50
1.1.49
1.1.48
1.1.47
1.1.46
1.1.45
1.1.44
1.1.43
1.1.42
1.1.41
1.1.40
1.1.39
1.1.38
1.1.37
1.1.36
1.1.35
1.1.34
1.1.33
1.1.32
1.1.31
1.1.30
1.1.29
1.1.28
1.1.27
1.1.26
1.1.25
1.1.24
1.1.23
1.1.22
1.1.21
1.1.20
1.1.19
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.12
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.0
A Utilitary package functionalities modules for improve a secure performatic development.
Current section
Files
Jump to
Current section
Files
lib/krug/mailer/socketlab/socketlab.sender.ex
defmodule Krug.SocketLabSender do
@moduledoc """
A module to simplify use of Bamboo SMTP mailing
with the "SocketLab" smtp provider.
Documentation at https://www.socketlabs.com
"""
@moduledoc since: "0.3.0"
alias Krug.GenericMail
alias Krug.GenericSMTPMailer
alias Krug.StringUtil
@doc """
Send mail over "SocketLab" smtp provider.
Don't uses config.exs file for configuration read. Uses following
conventioned configurations:
```
[
adapter: Bamboo.SMTPAdapter,
chained_adapter: Bamboo.SMTPAdapter,
server: "",
port: 587,
username: "",
password: "",
api_key: "my_api_key",
tls: :always,
allowed_tls_versions: {:system, "ALLOWED_TLS_VERSIONS"},
ssl: false,
retries: 0,
no_mx_lookups: false,
auth: :always
]
```
Received configurations options will be merged in this above. Configurations
specific for this smtp provider too.
Return true if call to smtp provider results without errors. However the mail can be not delivered
for any reason, by example restrictions quotas.
SocketLab don't uses a sender_email as smtp username.
Because of this, the sender_password key in email_configuration
should contain username and password, joined whit 1 comma.
```elixir
iex > email_configuration = %{
sender_name: "Johannes Backend",
sender_email: "johannes@has.not.email",
sender_password: nil,
replay_to: "johannes_chief@johannesenterpriseserver.com"
}
iex > Krug.SocketLabSender.mail(email_configuration,"Lets Party","Party Tommorow at 18:30","any@any.com")
false
```
```elixir
iex > email_configuration = %{
sender_name: "Johannes Backend",
sender_email: "johannes@has.not.email",
sender_password: "<johannes_username>,<johannes_password>",
replay_to: "johannes_chief@johannesenterpriseserver.com"
}
iex > Krug.SocketLabSender.mail(email_configuration,"Lets Party","Party Tommorow at 18:30","any@any.com")
true
```
"""
def mail(email_configuration,title,body,tto) do
try do
try do
arr = email_configuration.sender_password |> StringUtil.split(",",true)
credentials = %{server: "smtp.socketlabs.com",
username: Enum.at(arr,0),
password: Enum.at(arr,1)}
GenericMail.get_email(email_configuration,title,body,tto)
|> GenericSMTPMailer.deliver_now(credentials)
true
rescue
_ -> false
end
catch
_ -> false
end
end
end