У меня установлен сервер Postfix в моем дроплете Digitalocean вместе с моим ASP.Net WebApi в док-контейнере.
Когда я пытаюсь отправить почту из своего приложения ASP WebAPI, я получаю В соединении отказано исключение.
Вот мой код С#
SmtpClient smtpClient = new SmtpClient("dev.mydomain.net", 25);
smtpClient.Credentials = new System.Net.NetworkCredential("postfix_user@dev.mydomain.net", "passwd");
//smtpClient.UseDefaultCredentials = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
MailMessage mail = new MailMessage();
mail.IsBodyHtml = true;
mail.From = new MailAddress(mailFrom, "MyApp");
mail.To.Add(new MailAddress(mailTo));
mail.Subject = subect;
mail.Body = body;
mail.Headers.Add("Message-ID", Guid.NewGuid().ToString());
await smtpClient.SendMailAsync(mail);
/var/log/mail.log
не имеет ни одной строки о попытке подключения, поэтому я предполагаю, что мой запрос никогда не достиг сервера postfix.
Вот мой файл конфигурации постфикса:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
#delay_warning_time = 4h
readme_directory = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/letsencrypt/live/dev.mydomain.net/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/dev.mydomain.net/privkey.pem
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = dev.mydomain.net
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.$mydomain, localhost, $myhostname
relayhost =
mynetworks = 127.0.0.0/8 172.0.0.0/8 10.0.0.0/8 myIpAddres 172.17.0.0/16 172.18.0.0/16
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
Я могу отправить письмо через echo "body of the email" | mail -s "subject line" myaddress@yahoo.com
это работает.
Я перепробовал все возможные решения, которые нашел в Google, за последние два дня, но ни одно из них не сработало. Так что Вы моя последняя надежда 🙂
Пожалуйста помоги. Спасибо 🙂
РЕДАКТИРОВАТЬ 1
Если я сделаю telnet dev.mydomain.net 25
с другой капли, которая у меня есть, соединение успешно.
linux электронная почта postfix docker smtp
Стефан Вукович
1 ответ
Поиск «digitalocean port 25» выдает вероятная соответствующая документация:
SMTP-порт 25 заблокирован во всех дроплетах для новых учетных записей, чтобы предотвратить спам и другие злоупотребления нашей платформой.
Возможно, вы захотите подключиться к своему почтовому серверу через порт или IP-адрес, на который не распространяется общесервисная блокировка исходящего TCP-порта 25.
тревога