AdvancedDNA Ответов: 2

C# и Vb.net отправка электронных писем отключена


У меня есть следующий код C# для отправки электронной почты в нескольких приложениях
private void MailSend()
{
    DateTime Now = System.DateTime.Now;
    MailMessage message = new MailMessage();
    SmtpClient smtp = new SmtpClient("corimc04");
    smtp.Timeout = 5000;
    string recipient = recipientCB.SelectedItem.ToString();
    try
    {
        var _with1 = message;
        _with1.From = new MailAddress("Non-Stock_MRO_Administrator@gmail.com");
        _with1.To.Add(new MailAddress(email));        
        _with1.Body = "You have a package in receiving ready for pickup from " + supplier + ".\nOn Shelf: " + shelf + ".\nTracking Number: " + trackingNum;
        _with1.Subject = "MRO Automated Email for " + recipient;
        smtp.Send(message);
        message = null;
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error Sending emails. " + ex.Message);
    }
    smtp = null;
    return;
}

У меня также есть следующий VB-код для отправки электронной почты в других приложениях.

Sub SendEmail()
    Dim smtp As New SmtpClient("corimc04")
    smtp.UseDefaultCredentials = True
    smtp.Timeout = 5000
    
    Try
        
        Dim message As New MailMessage()
        Dim _with1 = message
        _with1.From = New MailAddress("Rework_Reporter@gmail.com")
        _with1.To.Add(New MailAddress("email"))
        _with1.Body = "Rework Status for Rework WIP" & vbLf & data
        _with1.Subject = "Rework Report Updates"
        smtp.Send(message)
        message.Dispose()
    Catch ex As Exception
        Console.WriteLine("Error Sending emails. " & ex.Message)
    End Try

    smtp = Nothing
End Sub


Сегодня мой код C# просто перестал работать по какой-то причине, и ни одно из моих приложений C# не будет отправлять почту, но мои приложения VB все еще отправляют почту. У меня есть много проектов, которые используют этот код C#, и я не хочу их конвертировать. Есть ли у кого-нибудь идеи, почему это так внезапно прекратилось?

Что я уже пробовал:

Я попытался написать библиотеку DLL VB для ссылки в своем проекте C#, но не смог заставить ее работать.

[no name]

Моя идея заключается в том, что ваш код C# перестал работать, потому что что-то изменилось. Что произошло, мы понятия не имеем, потому что "перестал работать" для нас вообще ничего не значит.

Philippe Mori

Если он работал раньше, то либо сервер не работает, либо его конфигурация изменилась (например, повышенная безопасность). Было бы полезно, если бы вы могли найти и поделиться информацией о фактической ошибке.

[no name]

пожалуйста, проверьте следующий ответ

Richard Deeming

Единственное очевидное различие между этими двумя методами-это линия:
smtp.UseDefaultCredentials = True
который отсутствует в вашем коде C#.

В противном случае поговорите со своими сетевыми администраторами, чтобы узнать, что изменилось.

2 Ответов

Рейтинг:
2

xXxRevolutionxXx

Не работает ? Что значит "не работает"? Я впечатлен тем, как работал этот код. Вы даже не предоставляете учетные данные для своей электронной почты, чтобы действительно отправить ее... В любом случае... вы должны попытаться ввести smtp.UseDefaultCredentials = true в вашем коде C#... что-то такое VB.NET код делает... но код C# этого не делает.


Рейтинг:
10

AdvancedDNA

Я получаю "первое случайное исключение типа" System.Net.Mail.SmtpException " произошло в системе.ошибка dll при отправке электронных писем. Время операции истекло.Поток " & lt;No Name>" (0x2658) вышел с кодом 0 (0x0)"
Этот код работает уже больше года, но теперь дает это исключение.

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

Это не будет решено в этой теме.