Вопрос

У меня есть код,

 System.Web.Mail.MailMessage oMailMessage = new MailMessage();
            oMailMessage.From = strFromEmaild;
            oMailMessage.To = strToEmailId;
            oMailMessage.Subject = strSubject;
            oMailMessage.Body = strBody;
            SmtpMail.SmtpServer = "localhost";
            SmtpMail.Send(oMailMessage);

(все переменные имеют значения)

Я установил виртуальные службы SMTP.почему он не может отправлять электронные письма.почему не работает??

РЕДАКТИРОВАТЬ

public bool SendMail(string strToEmailId, string strFromEmaild, string strSubject, string strBody)
{
    try
    {
        System.Web.Mail.MailMessage oMailMessage = new MailMessage();
        oMailMessage.From = strFromEmaild;
        oMailMessage.To = strToEmailId;
        oMailMessage.Subject = strSubject;
        oMailMessage.Body = strBody;
        SmtpMail.SmtpServer = "SERVERNAME";
        SmtpMail.Send(oMailMessage);

        return true;
     }
     catch (Exception ex)
     {
         return false;
     }
 }

У меня есть этот код.Он работает нормально и возвращает true, но я не получаю никаких писем во входящих.

Что еще может быть не так?

Получение некоторых писем в каталоге BadMail по адресу C:\Inetpub\mailroot\Badmail, а также в каталоге очереди, получение некоторых писем здесь...что это значит..??

Я обнаружил, что почту можно отправлять только на учетные записи Gmail...почему это так?

Это было полезно?

Решение

Определите, в чем заключается ошибка:

try
{
 SmtpMail.Send(oMailMessage);
}
catch (Exception ex)
{
//breakpoint here to determine what the error is:
Console.WriteLine(ex.Message);
}

Отсюда отредактируйте свой вопрос, указав сведения об исключении.

Другие советы

Как уже упоминалось другими, с вашим кодом все в порядке, и, скорее всего, это что-то в вашей конфигурации SMTP или, возможно, ваш почтовый клиент, которому вы отправляете тестовые электронные письма, помечает их как спам.Если это спам, то это достаточно легко выяснить.Если что-то связано с электронной почтой, вы можете перейти в корневую папку своей почты, и там будет несколько папок с файлами электронной почты и описанием.Посмотрите, есть ли что-нибудь в папке BadMail или папке очереди, откройте их в блокноте и посмотрите, какая ошибка выдается, почему они не были отправлены.

Трудно сказать, но одна из возможностей заключается в том, что вы не включили анонимный доступ к виртуальному SMTP-серверу.Перейдите в диалог свойств виртуального сервера, выберите вкладку «Доступ», нажмите кнопку «Контроль доступа» и убедитесь, что анонимный доступ включен.

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

  1. Оберните код в блок try/catch и посмотрите, содержит ли сообщение об исключении полезные данные.
  2. Используйте 127.0.0.1 вместо localhost, чтобы исключить что-то сумасшедшее.
  3. Убедитесь, что ваш SMTP-сервер работает на стандартном порту (я думаю, 25)

Здравствуйте, вы можете следовать следующему коду:

try
        {
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            client.EnableSsl = true;
            client.Timeout = 100000;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new NetworkCredential("your gmail id", "password");
            MailMessage msg = new MailMessage();
            msg.To.Add(textBoxTo.Text);
            msg.From = new MailAddress("your gmail id");
            msg.Subject = textBoxSubject.Text;
            msg.Body = textBoxMsg.Text;
            Attachment data = new Attachment(textBoxAttachment.Text);
            msg.Attachments.Add(data);
            client.Send(msg);
            MessageBox.Show("Successfully Sent Message.");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
       }

вы пробовали 127.0.0.1 вместо Localhost?Также вы проверили, что служба SMTP работает, проверьте это связь для получения подробной информации.

На виртуальном smtp-сервере добавьте ограничения ретрансляции и контроль соединений, чтобы ни одно из внешних подключений не было разрешено.

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top