как отправлять почту из .net?

#email

#Адрес электронной почты

Вопрос:

я написал метод, как показано ниже, я получил ошибку, поскольку указанная строка не соответствует форме, требуемой для адреса электронной почты. пожалуйста, помогите мне

 SendMail("xyz@gmail.com","hi","heloo");

public bool SendMail(string toMailAddress, string mailSubject, string mailMessage)
    {

         string smtphost ="smtp.gmail.com";
            int smtpport = 100;
            string smtpuser ="xyz";
            string smtppwd = "xyz";
            SmtpClient client = null;



            string MessageBody = string.Empty;
            try
            {

                message = new MailMessage();
                message.From = new MailAddress(smtpuser);
                message.To.Add(toMailAddress);
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.Subject = mailSubject;
                message.Body = mailMessage.ToString();



                message.IsBodyHtml = true;

                client = new SmtpClient();
                client.Host = smtphost;

                client.Port = smtpport;
                client.Credentials = new System.Net.NetworkCredential(smtpuser, smtppwd);
                client.Send(message);
            }
            catch (Exception ex)
            {
                string x = ex.Message;
            }
            return true;
        }
  

Комментарии:

1. в какой строке возникает ошибка?

2. Не могли бы вы распечатать переменную toMailAddress и посмотреть, правильный ли это адрес электронной почты?

3. Кроме того, вы выполняете эту строку smtpuser =»xyz»; и затем используете ее в качестве адреса электронной почты?

Ответ №1:

Ваш пользователь «от» должен быть в форме действительного адреса электронной почты.

 message.From = new MailAddress(smtpuser);
  

Кроме того, вам нужно будет использовать конструктор MailAddress для .Также и в собственность.

Ответ №2:

Попробуйте, указав порт как 25 и значение isslenabled как true, поскольку на сервере gmail включен SSL

Ответ №3:

Убедитесь, что toMailAddress и smtpuser являются действительными адресами электронной почты. Попробуйте использовать smtpport = 587; предоставляется Gmail для исходящей почты (SMTP). Надеюсь, это заставит ее работать нормально. Пожалуйста, перечислите ошибки, с которыми вы сталкиваетесь.

Ответ №4:

Этот код будет работать. Что я сделал, так это

  1. правильный smtphost
  2. правильный smtpport — 587
  3. Включить SSL
  4. перед установкой учетных данных установите для UseDefaultCredentials значение false
  5. установить метод доставки
 общедоступный статический bool SendMail(строка toMailAddress, строка mailSubject, строка MailMessage)
 { 
 строка smtphost = "smtp.gmail.com ";
 int smtpport = 587;
 строка smtpuser = "youremail@gmail.com ";
 строка smtppwd = "пароль";

 SmtpClient client = null;



 строка MessageBody = строка.Пусто;
 попробуйте
 {

 var message = новое почтовое сообщение();
 Сообщение.From = новый почтовый адрес (smtpuser); 
 Сообщение.Кому.Добавить (toMailAddress);
 Сообщение.BodyEncoding = System.Text.Encoding.UTF8;
 Сообщение.Тема = mailSubject;
 Сообщение.Тело = MailMessage.toString();
 Сообщение.IsBodyHtml = true;

 клиент = новый SmtpClient();
 клиент.Host = smtphost; 
 клиент.EnableSsl = true;
 клиент.Порт = smtpport;
 клиент.UseDefaultCredentials = ложь;
 клиент.Метод доставки = SmtpDeliveryMethod.Сеть;
 клиент.Учетные данные = новая система.Net.NetworkCredential(smtpuser, smtppwd);

 клиент.Отправить (сообщение);
 }
 перехват (исключение ex)
 { 
 строка x = ex.InnerException.Сообщение;
 Консоль.Строка записи (x);
 }
 возвращает true;

 }