Виртуальный сервер C # SMTP не отправляет почту - PullRequest
0 голосов
/ 22 июня 2011

C # Виртуальный SMTP-сервер не отправляет почту.Вот код:

public static void SendEmail(string _FromEmail, string _ToEmail, string _Subject, string _EmailBody)
{

    // setup email header . 
    SmtpMail.SmtpServer = "127.0.0.1";
    MailMessage _MailMessage = new MailMessage();

    _MailMessage.From = _FromEmail;
    _MailMessage.To = _ToEmail;
    _MailMessage.Subject = _Subject;
    _MailMessage.Body = _EmailBody;

    try
    {
        SmtpMail.Send(_MailMessage);
    }
    catch (Exception ex)
    {
        if (ex.InnerException != null)
        {
            String str = ex.InnerException.ToString();

        }
    }

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Это исключение Interop, потому что этот код .NET полагается на службы Interop (Erability), неуправляемые вещи.Сообщение, однако, довольно ясно, сервер не может ретранслировать, потому что он был настроен на отклонение ретрансляции электронной почты.

Много лет назад это не было проблемой, и вы могли фактически использовать любой общедоступный SMTP-сервер для отправки электронной почты.С появлением СПАМА вся игра изменилась, теперь на большинстве серверов ретрансляция отключена, и ваш запрос на отправку почты отклоняется.

Вам потребуется здесь, чтобы он не отклонял вашу почту, - это аутентифицировать ваш запрос(учетная запись / пользователь и пароль на этом сервере).Это должна быть действительная комбинация имени пользователя и пароля, известная этому SMTP-серверу.Вы делаете это, устанавливая их (из моей головы извините) в свойстве .Credentials.См. Также свойство UseDefaultCredentials. Если вы задаете Credentials, вам нужно убедиться, что UseDefaultCredentials имеет значение false.

0 голосов
/ 22 июня 2011

Если ошибка такова:

550 5.7.1 Невозможно передать для ragaei.mahmoud@invensys.com

Тогда ваш SMTP-сервер не может отправить на этот адрес электронной почты. Используйте другой SMTP-сервер или настройте его для ретрансляции в Интернет. Локальный, вероятно, будет отправлять только на адреса в вашем собственном домене. Если это вопрос конфигурации SMTP-сервера, возможно, вам больше повезет, если вы зададите вопрос о Superuser.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...