Как отправить почту от c#

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

 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 Dir в C:\Inetpub\mailroot\Badmail also in Queue Directory getting some mails here..., что делает, который означает..??

Я нашел, что почта только может посланный на счета Gmail..., почему это?

5
задан Red Swan 22 January 2010 в 17:45
поделиться

5 ответов

Определите, какая ошибка:

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

отсюда, пожалуйста, отредактируйте свой вопрос с этим деталями исключения.

1
ответ дан 14 December 2019 в 13:36
поделиться

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

2
ответ дан 14 December 2019 в 13:36
поделиться

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

1
ответ дан 14 December 2019 в 13:36
поделиться

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

0
ответ дан 14 December 2019 в 13:36
поделиться

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

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

Похожие вопросы: