Installation Of Postfix For Email Sending
Thu Dec 08 2022 07:49:53 GMT+0000 (Coordinated Universal Time)
Създаване на мейл сървър (SMTP)
https://www.linuxbabe.com/mail-server/setup-basic-postfix-mail-sever-ubuntu
https://ubuntu.tutorials24x7.com/blog/install-mail-server-on-ubuntu-20-04-lts-using-postfix-dovecot-and-roundcube
# Виждаме името на хоста
hostname -f
# Променяме го при нужда да е както домейна (ihelp.bg)
hostnamectl set-hostname <домейна>
# Инсталация на Postfix (1 стъпка: Internet site, 2 стъпка: слагаме домейна)
sudo apt-get update
sudo apt-get install postfix -y
# Проверяваме дали процеса слуша на порта
sudo ss -lnpt | grep master
# Тестваме изпращане на имейл
echo "test email" | sendmail <някакъв Gmail или друг>
# The inbox for each user is located at /var/spool/mail/<username> or /var/mail/<username> file.
# If you are unsure where to look for the inbox, use this command:
postconf mail_spool_directory
# The Postfix mail log is stored at /var/log/mail.log.
# За всеки поддомейн си създаваме потребител (noreply)
adduser noreply
парола: asdasd
# Трябва да се добави и порта към firewall-a
# Добавяне към накрая на файла: nano /etc/postfix/main.cf
always_add_missing_headers = yes
smtp_tls_security_level = may
smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_CApath = /etc/ssl/certs
# C# част
public class EmailClient
{
public void SendEmail(SendEmailOptions options)
{
var emailConfig = Global.AppSettings.SmtpEmailConfig;
using var client = new SmtpClient()
{
Host = emailConfig.Host,
Port = emailConfig.HostPort,
DeliveryMethod = SmtpDeliveryMethod.Network,
};
using var mailMessage = new MailMessage
{
From = new MailAddress(options.EmailFrom),
Subject = options.Subject,
Body = options.Message,
IsBodyHtml = options.IsBodyHtml,
};
mailMessage.To.Add(string.Join(", ", options.EmailsTo));
client.Send(mailMessage);
}
}
public class SendEmailOptions
{
public string EmailFrom { get; set; } = Global.AppSettings.SmtpEmailConfig.NoReplyEmail;
public string Subject { get; set; }
public string Message { get; set; }
public bool IsBodyHtml { get; set; } = true;
public List<string> EmailsTo { get; set; } = new List<string>();
public void AddEmailsToSend(params string[] emails)
{
this.EmailsTo.AddRange(emails);
}
}
# Конфигурация
"SmtpEmailConfig": {
"OfficialEmail": "mail@ihelp.bg",
"NoReplyEmail": "noreply@ihelp.bg",
"Host": "164.138.217.194",
"HostPort": 25
},



Comments