Skip to main content

Sending Email from Codebase

Unlock the power of programmatic email sending to gain unprecedented flexibility and control over your application's communication. By integrating email sending directly into your codebase, you streamline the process and tailor messages precisely to your needs.

Importing Required Modules

To initiate email communication within your module, navigate to the views.py file located in your module's folder. Here, you will begin the setup process by importing the Email class from the Communication Package as shown below.

from ..packages.communication.email.utils import Email

Customizing Email Configuration

Once imported, you can customize various parameters of the email using the Email class provided by the Communication Package. This includes specifying recipient addresses, the subject line and the content of the body. Please note that apart from the argument for the recipient (‘to’), all other fields are optional.

Here's an example of how you can instantiate the Email class with customizable parameters:

# Customize email parameters

email = Email(
to='recipient1@example.com', #Recipient email address
cc='recipient2@example.com', #CC recipients (optional)
bcc='recipient3@example.com', #BCC recipients (optional)
subject='Your Subject Here', #Email subject
body='Your email body content here.' #Email body content
)

Fine-tuning SMTP Configuration

You have the flexibility to tailor the SMTP configuration for email delivery based on your needs by specifying the configuration key, which determines the specific SMTP settings to be utilized.

The config argument plays a pivotal role in this process; by providing a value for this argument when configuring the email object, you can explicitly define the SMTP configuration to be employed. If left empty, the system defaults to the configuration marked as default, ensuring seamless email transmission.

# Customize email parameters

email = Email(
.
.
.
config = 'smtp_config_key_here' #Configuration key (optional)
)

However, it's essential to note that in scenarios where no default configuration is specified and the config key is not passed, an error will be raised. This ensures that proper configuration is enforced, preventing potential issues with email delivery.

Attachments for Added Functionality

Elevate your emails' utility by attaching files such as documents or images using the attach() method.

 email.attach(file=<file>)

Effortless Delivery

When your email is configured to perfection, simply call the send_email() method to initiate the delivery process, ensuring your message reaches its destination without a hitch.

email.send_email()

With these capabilities seamlessly integrated into your codebase, communication becomes not just a feature, but a powerful tool at your disposal.

Example Code

Below is an example of sending an email from the codebase:

from ..packages.communication.email.utils import Email

class Email():

email = Email(
to='recipient1@example.com', #Recipient email address
cc='recipient2@example.com', #CC recipients (optional)
bcc='recipient3@example.com', #BCC recipients (optional)
subject='Your Subject Here', #Email subject
body='Your email body content here.' #Email body content
config = 'smtp_config_key_here' #Configuration key (optional)
)

email.attach(file=<file1>, <file2>)

email.send_email()