Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33103526
welcome_email.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
welcome_email.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.User.WelcomeEmail
do
@moduledoc
"""
The module represents the functions to send welcome email.
"""
alias
Pleroma.Config
alias
Pleroma.Emails
alias
Pleroma.User
import
Pleroma.Config.Helpers
,
only
:
[
instance_name
:
0
]
@spec
enabled?
()
::
boolean
()
def
enabled?
,
do
:
Config
.
get
([
:welcome
,
:email
,
:enabled
],
false
)
@spec
send_email
(
User
.
t
())
::
{
:ok
,
Oban.Job
.
t
()}
def
send_email
(%
User
{}
=
user
)
do
user
|>
Emails.UserEmail
.
welcome
(
email_options
(
user
))
|>
Emails.Mailer
.
deliver_async
()
end
defp
email_options
(
user
)
do
bindings
=
[
user
:
user
,
instance_name
:
instance_name
()]
%{}
|>
add_sender
(
Config
.
get
([
:welcome
,
:email
,
:sender
],
nil
))
|>
add_option
(
:subject
,
bindings
)
|>
add_option
(
:html
,
bindings
)
|>
add_option
(
:text
,
bindings
)
end
defp
add_option
(
opts
,
option
,
bindings
)
do
[
:welcome
,
:email
,
option
]
|>
Config
.
get
(
nil
)
|>
eval_string
(
bindings
)
|>
merge_options
(
opts
,
option
)
end
defp
add_sender
(
opts
,
{
_name
,
_email
}
=
sender
)
do
merge_options
(
sender
,
opts
,
:sender
)
end
defp
add_sender
(
opts
,
sender
)
when
is_binary
(
sender
)
do
add_sender
(
opts
,
{
instance_name
(),
sender
})
end
defp
add_sender
(
opts
,
_
),
do
:
opts
defp
merge_options
(
nil
,
options
,
_option
),
do
:
options
defp
merge_options
(
value
,
options
,
option
)
do
Map
.
merge
(
options
,
%{
option
=>
value
})
end
defp
eval_string
(
nil
,
_
),
do
:
nil
defp
eval_string
(
""
,
_
),
do
:
nil
defp
eval_string
(
str
,
bindings
),
do
:
EEx
.
eval_string
(
str
,
bindings
)
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Tue, Jan 20, 1:57 PM (13 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
935375
Default Alt Text
welcome_email.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment