Как отправить электронное письмо в C#

В этом примере показано, как вы можете отправлять электронную почту с помощью программы C#. В последние годы это стало сложнее, потому что есть несколько провайдеров электронной почты, которые хотят отправлять анонимные сообщения электронной почты. Теперь, чтобы отправить электронное письмо, вам нужно создать объект NetworkCredential, который указывает ваш почтовый сервер, имя пользователя и пароль. В основном вы должны войти на свой почтовый сервер, чтобы ваш провайдер знал, что вы не отправляете миллионы спам-сообщений.

В этом примере используется следующий метод SendEmail для отправки электронной почты.

using System.Net;
using System.Net.Mail;

// Отправка сообщения электронной почты.
private void SendEmail(string to_name, string to_email,
    string from_name, string from_email,
    string host, int port, bool enable_ssl, string password,
    string subject, string body)
{
    // Создаем почтовое сообщение.
    MailAddress from_address =
        new MailAddress(from_email, from_name);
    MailAddress to_address =
        new MailAddress(to_email, to_name);
    MailMessage message =
        new MailMessage(from_address, to_address);
    message.Subject = subject;
    message.Body = body;

    // Получить SMTP-клиент.
    SmtpClient client = new SmtpClient()
    {
        Host = host,
        Port = port,
        EnableSsl = enable_ssl,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential(
            from_address.Address, password),
    };

    // Отправить сообщение.
    client.Send(message);
}

Метод создает объекты MailAddress для представления адресов электронной почты From и To. Вы можете использовать строки для них, когда вы делаете MailMessage, но тогда вы не можете связать дружественное имя (например, «Rod Stephens») с адресами электронной почты.

Затем программа создает MailMessage, передавая свой конструктор адреса From и To. Затем код устанавливает поля MailMessage объектов Subject и Body.

Затем метод создает объект SmtpClient. Он устанавливает клиентский хост и port, чтобы он знал, куда отправить электронное письмо. Метод устанавливает свойство EnableSsl в соответствии со значением, которое оно было передано в качестве параметра. Если ваш почтовый сервер использует SSL (Secure Sockets Layer-Gmail использует это), установите флажок в форме, чтобы установить значение true.

Этот код также устанавливает для параметра UseDefaultCredentials значение false и устанавливает свойство клиента Credentials клиента для нового объекта NetworkCredential, содержащего ваше имя пользователя и пароль.

Наконец, метод вызывает метод SmtpClient объекта Отправить для отправки электронной почты.

Класс System.Net.Mail.MailMessage поддерживает некоторые другие функции, которые вы, возможно, захотите использовать. Например, он имеет свойства CC и Bcc, которые позволяют отправлять копии вежливости и слепые вежливые копии. Показанная здесь версия достаточно хороша.

Следующий код показывает, как программа вызывает метод SendEmail.

// Отправить сообщение.
private void btnSend_Click(object sender, EventArgs e)
{
    try
    {
        SendEmail(txtToName.Text, txtToEmail.Text,
            txtFromName.Text, txtFromEmail.Text,
            txtHost.Text, int.Parse(txtPort.Text),
            chkEnableSSL.Checked, txtPassword.Text,
            txtSubject.Text, txtBody.Text);
        MessageBox.Show("Message sent");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Этот код просто вызывает SendEmail, передавая ему значения, введенные вами в форму.

Источник: http://csharphelper.com/blog/2014/12/how-to-send-email-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector