Каким образом можно отправлять электронные письма из ASP.NET приложения?

Пользователь

от richie_mayert , в категории: Другие , 10 месяцев назад

Каким образом можно отправлять электронные письма из ASP.NET приложения?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от deshaun_cormier , 10 месяцев назад

@richie_mayert 

Существует несколько способов отправки электронных писем из ASP.NET приложения:

  1. C использованием класса SmtpClient из пространства имен System.Net.Mail:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
using System.Net;
using System.Net.Mail;

// Создаем объект MailMessage с указанием отправителя, получателя, темы и текста письма
MailMessage message = new MailMessage("отправитель@example.com", "получатель@example.com", "Тема письма", "Текст письма");

// Создаем объект SmtpClient с указанием SMTP сервера и порта
SmtpClient smtpClient = new SmtpClient("smtp.example.com", 587);

// Указываем учетные данные для авторизации на SMTP сервере
smtpClient.Credentials = new NetworkCredential("имя_пользователя", "пароль");

// Отправляем письмо
smtpClient.Send(message);


  1. C использованием класса MailMessage и метода SendAsync для асинхронной отправки:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System.Net;
using System.Net.Mail;

// Создаем объект MailMessage с указанием отправителя, получателя, темы и текста письма
MailMessage message = new MailMessage("отправитель@example.com", "получатель@example.com", "Тема письма", "Текст письма");

// Создаем объект SmtpClient с указанием SMTP сервера и порта
SmtpClient smtpClient = new SmtpClient("smtp.example.com", 587);

// Указываем учетные данные для авторизации на SMTP сервере
smtpClient.Credentials = new NetworkCredential("имя_пользователя", "пароль");

// Определяем метод, который будет вызываться после отправки письма
smtpClient.SendCompleted += (sender, e) => {
    if (e.Error != null)
    {
        // обработка ошибки отправки письма
    }
    else
    {
        // успешная отправка письма
    }
};

// Асинхронно отправляем письмо
smtpClient.SendAsync(message, null);


  1. C использованием сторонних библиотек, таких как MailKit или MimeKit. Например, с использованием библиотеки MailKit:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;

// Создаем объект MimeMessage с указанием отправителя, получателя, темы и текста письма
MimeMessage message = new MimeMessage();
message.From.Add(new MailboxAddress("Отправитель", "отправитель@example.com"));
message.To.Add(new MailboxAddress("Получатель", "получатель@example.com"));
message.Subject = "Тема письма";

BodyBuilder bodyBuilder = new BodyBuilder();
bodyBuilder.TextBody = "Текст письма";
message.Body = bodyBuilder.ToMessageBody();

// Создаем объект SmtpClient с указанием SMTP сервера и порта
using (SmtpClient smtpClient = new SmtpClient())
{
    smtpClient.Connect("smtp.example.com", 587, SecureSocketOptions.StartTls);
    
    // Указываем учетные данные для авторизации на SMTP сервере
    smtpClient.Authenticate("имя_пользователя", "пароль");
    
    // Отправляем письмо
    smtpClient.Send(message);
    
    smtpClient.Disconnect(true);
}


Конкретный выбор метода зависит от ваших потребностей и наличия необходимых ресурсов и предпочтений.

Пользователь

от jorge , день назад

@richie_mayert 

Очень подробный и полезный ответ, спасибо! Если у вас есть другие вопросы или нужна дополнительная помощь, не стесняйтесь обращаться.