джерело: 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). Коли домен стане активним, переходьте до наступного кроку.
Відкрийте розділ Email Domains і натисніть "Create Email Domain".
Вкажіть назву Email Domain і переконайтесь, що ви знаходитесь в правильному відділі.
Натисніть "Create Email Domain" і чекайте, поки домен не стане активним.
Налаштування DKIM (DomainKeys Identified Mail)
- Додайте запис DKIM до вашого домену, створивши DKIM селектор в OCI Console. Використовуйте згенерований CNAME запис для налаштування вашого DNS.
У вашому новоствореному домені електронної пошти натисніть "Add DKIM".
Введіть DKIM селектор у форматі: prefix-shortregioncode-yyyyMMdd.
Згенеруйте і скопіюйте CNAME запис та CNAME значення для DNS.
Натисніть "Create DKIM".
Налаштування DNS
- Перейдіть у Networking → DNS Management → Zones. Створіть публічну DNS зону для вашого домену і додайте необхідні записи, зокрема CNAME запис DKIM. Опублікуйте зміни, щоб зробити конфігурацію DNS активною (це може зайняти до 72 годин).
Перейдіть у Networking → DNS Management → Zones.
Створіть нову публічну DNS зону, використовуючи назву вашого домену.
Відкрийте зону, перейдіть до Records і натисніть "Manage Records".
Додайте CNAME запис за допомогою інформації DKIM і опублікуйте зміни.
Чекайте, поки зміни DNS не поширяться (24–72 години).
2. Налаштування затвердженого відправника
Затверджений відправник необхідний для кожної електронної адреси, яка використовується з OCI Email Delivery.
Це забезпечує автентичність електронної пошти та відповідність стандарту Sender Policy Framework (SPF).
Завдання 1: Створити затвердженого відправника
Перейдіть у Email Delivery → Approved Senders в OCI Console.
Натисніть "Create Approved Sender" і вкажіть електронну адресу.
Перегляньте та скопіюйте SPF інформацію для вашого регіону.
Завдання 2: Додати SPF до DNS
Поверніться в DNS Management → Zones і відкрийте вашу зону.
Додайте запис TXT з SPF інформацією.
Опублікуйте зміни.
Завдання 3: Перевірка конфігурації
Перевірте Email Domain на панелі інструментів Email Delivery.
Переконайтесь, що DNS, DKIM і SPF мають статус "Active".
3. Тестування доставки електронних листів різними методами
Тестування доставки електронних листів є необхідним для перевірки налаштувань. Ось кілька підходів для тестування OCI Email Delivery:
Цілі
- Завершення попередніх кроків
- Генерація SMTP облікових даних
- Віртуальна машина Oracle Linux у OCI
Завдання 1: Генерація SMTP облікових даних
У OCI Console перейдіть у Profile → SMTP Credentials.
Згенеруйте SMTP облікові дані та скопіюйте ім'я користувача, пароль і кінцеву точку relay host.
Є ще один момент, який потрібно врахувати для налаштування Postfix. Перш ніж покинути консоль, натисніть на меню навігації в верхньому лівому куті, перейдіть у Developer Services, потім виберіть Application Integration — Email Delivery. Коли ви потрапите на екран Email Delivery, натисніть "Configuration" з лівої панелі.
Скопіюйте Relay Host Public Endpoint та SMTP Ports для використання в наступному завданні.
Зберегти для подальшого використання.
Метод 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) на наявність електронного листа.
- Якщо електронний лист не був доставлений, перевірте помилки, надруковані скриптом, або зверніться до логів.
Метод 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), щоб переконатися, що лист було надіслано успішно.
Метод 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), щоб переконатися, що лист було надіслано успішно.
Висновок
Тестування OCI Email Delivery можна здійснити різними способами, включаючи Postfix, Mailx, Python, Node.js та curl. Кожен метод має свої переваги в залежності від ваших вимог. Дотримуючись цього посібника, ви зможете налаштувати та перевірити конфігурацію OCI Email Delivery, забезпечуючи надійну та безпечну електронну пошту у вашому хмарному середовищі.
Джерело: OCI Email Delivery
Спробуйте цю конфігурацію у вашому середовищі, і поділіться своїми відгуками або питаннями!
Дякуємо, що відвідали! Я ділюся думками про лідерство, кар'єрне зростання та трансформаційні технологічні тенденції. Слідкуйте за мною на LinkedIn, Twitter або Facebook для натхнення та цікавих розмов про інновації та прогрес.
Kh. M. Moniruzzaman керує стратегічним плануванням, цифровою трансформацією та новими технологіями, допомагаючи організаціям та командам створювати інновації та здійснювати впливові глобальні зміни.
Останні пости, які вам можуть сподобатись:
- Переглянути мій бюлетень
- Продажі проти...
- Пресейлс: Невисловлені змагання в корпоративному світі
- Мистична Новорічна ніч: Ніч у Шанхаї
- Лідерство, як водіння в дацькому русі: хаотичне, але здійснене
- Перфекціонізм: Чому прагнення бути ідеальним в недосконалому світі — це погана ідея
- Розуміння самопідписаних сертифікатів та сертифікатів, підписаних органом сертифікації (CA)
- medium@moniruzzamanshimul
Відмова від відповідальності: Ідеї та думки, що висловлені в моїх дописах, є моїми особистими і не відображають офіційну позицію мого роботодавця.
Перекладено з: Comprehensive Guide to Testing OCI Email Delivery