Sending Email from CM Admin 📧
Overview
The CM Admin email feature allows you to send emails directly from CM Admin. This documentation outlines how to use CM Admin emails, including configuration and examples.
Usage
To use CM Admin email, use the CmAdmin.send_email
method.
Attributes
-
from
(optional) -
Specify from whom the email should be delivered. Takes a string value.
-
If not specified, uses the default from email from project settings.
-
to
(required) -
Specify to whom the email should be delivered. Takes an array or single email address.
-
cc
(optional) -
Specify carbon copy recipients. Takes an array or single email address.
-
bcc
(optional) -
Specify blind carbon copy recipients. Takes an array or single email address.
-
reply_to
(optional) -
Specify reply-to email address. Takes a string value.
-
subject
(required) -
Subject of the email. Takes a string value.
-
template
(optional) -
Template of the email. Takes a symbol value.
-
Options:
:blank
,:standard
(default) -
partial_file_path
(optional) -
Partial file path of the email template. Takes a string value.
-
partial_locals
(optional) -
Partial locals for the email template. Takes a hash value.
-
body
(optional) -
Body of the email. Takes an HTML string or plain text string.
-
button_text
andbutton_link
(optional) -
If the email template requires a button with a link, use these attributes.
-
attachments
(optional) -
If the email requires attachments, use this attribute.
Examples
Here are some examples of how to use the CmAdmin.send_email
method to send emails:
Basic Email with Partial Template
CmAdmin.send_email(
to: ['anbu@commutatus.com'],
subject: "[DMSv2] New Prospect Created!",
partial_file_path: '/cm_admin/mailers/prospect_admin_notification',
partial_locals: { user: User.last }
)
With CC and BCC Recipients
CmAdmin.send_email(
to: 'user@example.com',
cc: 'manager@example.com',
bcc: ['admin@example.com', 'audit@example.com'],
reply_to: 'noreply@example.com',
subject: "Project Update",
body: '<p>Here is the latest project update.</p>'
)
With Custom From Email
CmAdmin.send_email(
from: 'info@commutatus.com',
to: ['anbu@commutatus.com'],
subject: "[DMSv2] New Prospect Created!",
partial_file_path: '/cm_admin/mailers/prospect_admin_notification',
partial_locals: { user: User.last }
)
With Link Button
CmAdmin.send_email(
to: ['info@commutatus.com'],
subject: "New User Created!",
partial_file_path: '/cm_admin/mailers/user_admin_notification',
partial_locals: { user: User.last },
button_text: 'View user',
button_link: 'http://domain.com/user/1'
)
Simple HTML Content
CmAdmin.send_email(
to: ['anbu@commutatus.com'],
subject: "[DMSv2] New Prospect Created!",
body: '<p>Simple HTML content to be added here.</p>'
)
Note:
button_text
andbutton_link
are optional parameters.
Email with Blank Template
CmAdmin.send_email(
to: ['anbu@commutatus.com'],
subject: "[DMSv2] New Prospect Created!",
template: :blank,
body: '<p>Simple HTML content to be added here.</p>'
)
Email with Attachments
CmAdmin.send_email(
to: ['anbu@commutatus.com'],
subject: "[DMSv2] New Prospect Created!",
body: '<p>Simple HTML content to be added here.</p>',
attachments: [
{
filename: 'sample.pdf',
file_content: '...'
},
{
filename: 'sample.pdf',
url_path: '...'
}
]
)
Important Notes
Attachments
-
Attachments should be an array of hashes
-
Each hash should have exactly two keys:
-
filename
- Name of the file -
file_content
ORurl_path
- Either base64 encoded content or URL path
File Content Encoding
The file_content
should be a base64 encoded string of the file content/blob. You can use:
-
From file path:
Base64.encode64(File.open(file_path).read)
-
From URL:
Base64.encode64(URI.open(file_url).read)