Всеосяжний посібник з тестування доставки електронної пошти в OCI

pic

джерело: DALL-E Image

Доставка електронних листів відіграє критичну роль у сучасних хмарних інфраструктурах, забезпечуючи безперешкодну комунікацію для транзакційних та маркетингових цілей. Oracle Cloud Infrastructure (OCI) Email Delivery надає безпечну та високопродуктивну платформу для відправки електронних листів у великих обсягах. У цьому блозі ми розглянемо кілька методів налаштування та тестування OCI Email Delivery, пропонуючи розробникам та ІТ-фахівцям гнучкість у виборі найбільш підходящого підходу для їх потреб.

Незалежно від того, чи використовуєте ви Postfix, Mailx або сучасні програмування мови, цей посібник охоплює все — від налаштування вашого домену до тестування доставки електронних листів за допомогою різних інструментів.

Кроки для налаштування вашого домену електронної пошти

Створення домену в OCI Email Delivery

  • Перейдіть у Developer Services → Application Integration → Email Delivery в OCI Console. Натисніть "Create Email Domain", вкажіть назву вашого домену і переконайтесь, що він знаходиться в правильному відділі (compartment). Коли домен стане активним, переходьте до наступного кроку.

pic

Відкрийте розділ Email Domains і натисніть "Create Email Domain".

pic

pic

Вкажіть назву Email Domain і переконайтесь, що ви знаходитесь в правильному відділі.

pic

Натисніть "Create Email Domain" і чекайте, поки домен не стане активним.

Налаштування DKIM (DomainKeys Identified Mail)

  • Додайте запис DKIM до вашого домену, створивши DKIM селектор в OCI Console. Використовуйте згенерований CNAME запис для налаштування вашого DNS.

У вашому новоствореному домені електронної пошти натисніть "Add DKIM".

pic

Введіть DKIM селектор у форматі: prefix-shortregioncode-yyyyMMdd.

pic

Згенеруйте і скопіюйте CNAME запис та CNAME значення для DNS.

Натисніть "Create DKIM".

Налаштування DNS

  • Перейдіть у Networking → DNS Management → Zones. Створіть публічну DNS зону для вашого домену і додайте необхідні записи, зокрема CNAME запис DKIM. Опублікуйте зміни, щоб зробити конфігурацію DNS активною (це може зайняти до 72 годин).

Перейдіть у Networking → DNS Management → Zones.

pic

pic

Створіть нову публічну DNS зону, використовуючи назву вашого домену.

pic

Відкрийте зону, перейдіть до Records і натисніть "Manage Records".

pic

Додайте CNAME запис за допомогою інформації DKIM і опублікуйте зміни.

pic

Чекайте, поки зміни DNS не поширяться (24–72 години).

2. Налаштування затвердженого відправника

Затверджений відправник необхідний для кожної електронної адреси, яка використовується з OCI Email Delivery.
Це забезпечує автентичність електронної пошти та відповідність стандарту Sender Policy Framework (SPF).

Завдання 1: Створити затвердженого відправника

Перейдіть у Email Delivery → Approved Senders в OCI Console.

pic

Натисніть "Create Approved Sender" і вкажіть електронну адресу.

pic

pic

Перегляньте та скопіюйте SPF інформацію для вашого регіону.

pic

pic

Завдання 2: Додати SPF до DNS

Поверніться в DNS Management → Zones і відкрийте вашу зону.

Додайте запис TXT з SPF інформацією.

pic

Опублікуйте зміни.

Завдання 3: Перевірка конфігурації

Перевірте Email Domain на панелі інструментів Email Delivery.

Переконайтесь, що DNS, DKIM і SPF мають статус "Active".

pic

3. Тестування доставки електронних листів різними методами

Тестування доставки електронних листів є необхідним для перевірки налаштувань. Ось кілька підходів для тестування OCI Email Delivery:

Цілі

  • Завершення попередніх кроків
  • Генерація SMTP облікових даних
  • Віртуальна машина Oracle Linux у OCI

Завдання 1: Генерація SMTP облікових даних

У OCI Console перейдіть у Profile → SMTP Credentials.

pic

Згенеруйте SMTP облікові дані та скопіюйте ім'я користувача, пароль і кінцеву точку relay host.

pic

pic

Є ще один момент, який потрібно врахувати для налаштування Postfix. Перш ніж покинути консоль, натисніть на меню навігації в верхньому лівому куті, перейдіть у Developer Services, потім виберіть Application Integration — Email Delivery. Коли ви потрапите на екран Email Delivery, натисніть "Configuration" з лівої панелі.

pic

Скопіюйте Relay Host Public Endpoint та SMTP Ports для використання в наступному завданні.
Зберегти для подальшого використання.

pic

Метод 1: Поєднання Postfix та Mailx?

  • Postfix надає розширені можливості обробки та маршрутизації електронної пошти, що робить його підходящим для виробничих налаштувань.
  • Mailx є легким і простим, ідеально підходить для швидкої відправки електронних листів під час тестування.

Увійдіть у вашу Linux VM та встановіть Postfix:

sudo dnf install -y postfix

Дозвольте трафік SMTP через брандмауер:

sudo firewall-cmd --zone=public --add-service=smtp --permanent  
sudo firewall-cmd --reload

Видаліть пакет sendmail (якщо він встановлений) та встановіть Postfix як за замовчуванням Mail Transfer Agent (MTA):

sudo dnf remove -y sendmail  
sudo alternatives --set mta /usr/sbin/sendmail.postfix

Увімкніть та запустіть Postfix:

sudo systemctl enable --now postfix

Налаштування Postfix

Резервно скопіюйте конфігураційний файл Postfix:

sudo cp /etc/postfix/main.cf /etc/postfix/main.bak

Відредагуйте main.cf та додайте:

sudo vi /etc/postfix/main.cf  
relayhost = smtp.email.us-ashburn-1.oci.oraclecloud.com:587  
smtp_tls_security_level = may  
smtp_sasl_auth_enable = yes  
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd  
smtp_sasl_security_options =

Створіть та захистіть файл sasl_passwd:

sudo vi /etc/postfix/sasl_passwd  
#echo "server:port user:pass" | sudo tee /etc/postfix/sasl_passwd  
echo "smtp.email.us-ashburn-1.oci.oraclecloud.com:587 user:pass" | sudo tee /etc/postfix/sasl_passwd  
#  
sudo chown root:root /etc/postfix/sasl_passwd && sudo chmod 600 /etc/postfix/sasl_passwd #Змініть права доступу до файлу sasl_passwd  
sudo postmap hash:/etc/postfix/sasl_passwd #Генерація хешу SASL

Перезавантажте Postfix:

sudo postfix reload

Тестування доставки електронних листів

Встановіть Mailx:

sudo dnf install -y mailx

Відправте тестовий електронний лист:

#echo "This is a test message." | mailx -s "Test" -r [email protected] [email protected]  
echo "This is a test message." | mailx -s "Test" -r help@m*****l.info *****@gmail.com

Перевірте логи Postfix для усунення неполадок:

sudo tail -f /var/log/maillog

Метод 2: Окреме використання Mailx

У альтернативному налаштуванні, яке я згадував раніше:

  • Mailx підключається безпосередньо до SMTP сервера (OCI Email Delivery) без використання Postfix або іншого MTA.
  • Це усуває необхідність налаштування Postfix, спрощуючи процес.

Встановіть Mailx:

sudo dnf install -y postfix

Налаштуйте Mailx:

sudo cat /etc/mail.rc  
set smtp=smtp://smtp.email.us-ashburn-1.oci.oraclecloud.com:587  
set smtp-auth-user='your_smtp_username'  
set smtp-auth-password='your_smtp_password'  
set smtp-auth=plain  
set smtp-use-starttls  
set ssl-verify=ignore

Відправте тестовий електронний лист:

echo "This is a test email from Mailx." | mailx -s "Test Email" -r help@m*****l.info *****@gmail.com

Метод 3: Використання Python smtplib

Бібліотека smtplib Python надає легке рішення для відправки електронних листів програмно.

Встановлення Python

Переконайтесь, що Python встановлений на вашій системі:

sudo dnf install python3 python3-pip  
python --version

Збереження скрипту

Відкрийте текстовий редактор (наприклад, nano або vim) і створіть новий файл:

sudo nano send_email.py
import smtplib  
from email.mime.text import MIMEText  

# Налаштування SMTP  
SMTP_SERVER = "smtp.email.us-ashburn-1.oci.oraclecloud.com"  
SMTP_PORT = 587  
SMTP_USERNAME = "your_smtp_username"  
SMTP_PASSWORD = "your_smtp_password"  

# Контент електронного листа  
msg = MIMEText("This is a test email sent using Python.")  
msg["Subject"] = "Test Email"  
msg["From"] = "[email protected]" # Замість цього використовуйте свою затверджену адресу відправника  
msg["To"] = "[email protected]" # Замість цього вкажіть адресу одержувача  

try:  
 with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:  
 server.starttls() # Ініціюйте безпечне з'єднання  
 server.login(SMTP_USERNAME, SMTP_PASSWORD) # Аутентифікація на SMTP сервері
server.sendmail(msg["From"], msg["To"], msg.as_string()) # Відправка електронного листа  
 print("Email sent successfully!")  
except Exception as e:  
 print(f"Не вдалося відправити листа: {e}")

Запуск скрипту

Запустіть Python скрипт за допомогою наступної команди:

python3 send_email.py

Перевірка доставки електронної пошти

  • Перевірте вхідні повідомлення одержувача (наприклад, *****@gmail.com) на наявність електронного листа.

pic

  • Якщо електронний лист не був доставлений, перевірте помилки, надруковані скриптом, або зверніться до логів.

Метод 4.

Node.js з Nodemailer

Nodemailer — це популярна бібліотека для відправки електронних листів за допомогою Node.js.

Кроки:

Встановіть Node.js:

sudo dnf install -y nodejs

Встановіть Nodemailer:

npm init -y  
npm install nodemailer

Створення та запуск скрипта для відправки листа

Тепер ви можете використовувати Nodemailer для відправки електронних листів.

Створення нового файлу

Створіть новий файл JavaScript:

nano sendEmail.js

Вставте наступний код у файл:

const nodemailer = require('nodemailer');  

// Налаштування SMTP транспорту  
const transporter = nodemailer.createTransport({  
 host: 'smtp.email.us-ashburn-1.oci.oraclecloud.com',  
 port: 587,  
 secure: false, // використати STARTTLS  
 auth: {  
 user: 'your_smtp_username',  
 pass: 'your_smtp_password',  
 },  
});  

// Зміст листа  
const mailOptions = {  
 from: '[email protected]', // Адреса схваленого відправника  
 to: '[email protected]', // Адреса отримувача  
 subject: 'Тестовий лист від Node.js',  
 text: 'Це тестовий лист, надісланий за допомогою Node.js та Nodemailer.',  
};  

// Відправка листа  
transporter.sendMail(mailOptions, (error, info) => {  
 if (error) {  
 return console.log('Помилка:', error);  
 }  
 console.log('Лист надіслано успішно:', info.response);  
});

Збережіть та вийдіть з файлу (Ctrl + O, Enter, Ctrl + X).

Запуск скрипта

Виконайте скрипт за допомогою Node.js:

node sendEmail.js

Перевірка доставки електронної пошти

Перевірте вхідні повідомлення одержувача (наприклад, *****@gmail.com), щоб переконатися, що лист було надіслано успішно.

pic

Метод 5: Використання curl

Підготовка файлу електронної пошти

sudo nano email.txt
From: help@m*****l.info  
To: *****@gmail.com  
Subject: Тестовий лист від curl  

Це тестовий лист, надісланий за допомогою curl.

Відправка листа

curl --url "smtp://smtp.email.us-ashburn-1.oci.oraclecloud.com:587" \  
 --ssl-reqd \  
 --mail-from "help@m*****l.info" \  
 --mail-rcpt "*****@gmail.com" \  
 --upload-file email.txt \  
 --user "your_smtp_username:your_smtp_password"

Перевірка доставки електронної пошти

Перевірте вхідні повідомлення одержувача (наприклад, *****@gmail.com), щоб переконатися, що лист було надіслано успішно.

pic

Висновок

Тестування OCI Email Delivery можна здійснити різними способами, включаючи Postfix, Mailx, Python, Node.js та curl. Кожен метод має свої переваги в залежності від ваших вимог. Дотримуючись цього посібника, ви зможете налаштувати та перевірити конфігурацію OCI Email Delivery, забезпечуючи надійну та безпечну електронну пошту у вашому хмарному середовищі.

Джерело: OCI Email Delivery

Спробуйте цю конфігурацію у вашому середовищі, і поділіться своїми відгуками або питаннями!

Дякуємо, що відвідали! Я ділюся думками про лідерство, кар'єрне зростання та трансформаційні технологічні тенденції. Слідкуйте за мною на LinkedIn, Twitter або Facebook для натхнення та цікавих розмов про інновації та прогрес.

Kh. M. Moniruzzaman керує стратегічним плануванням, цифровою трансформацією та новими технологіями, допомагаючи організаціям та командам створювати інновації та здійснювати впливові глобальні зміни.

Останні пости, які вам можуть сподобатись:

Відмова від відповідальності: Ідеї та думки, що висловлені в моїх дописах, є моїми особистими і не відображають офіційну позицію мого роботодавця.

Перекладено з: Comprehensive Guide to Testing OCI Email Delivery

Leave a Reply

Your email address will not be published. Required fields are marked *