отправить письмо C # smtpclient с помощью IBM Lotus - PullRequest
1 голос
/ 24 февраля 2011

Я прошел через все ответы ... это моя ситуация

  1. Мне нужен код C # для отправки электронной почты с использованием учетной записи ibm lotus (есть имя пользователя и пароль)
  2. сервер, с которого наше приложение отправляет электронные письма, авторизован
  3. без остановки брандмауэра
  4. Лотос-клиент IBM не установлен на сервере. поэтому не может использовать interop.domino.dll
  5. служба SMTP доступна. У меня есть IP-адрес и порт. не могу подключиться к нему по telnet и протестировать его, потому что на сервере нет telnet, и они не позволят нам включить его

  6. Когда я запускаю приведенный ниже код, я получаю соединение, активно отказывающее в исключении.

Есть ли какой-нибудь пример работающего кода ... или я что-то здесь упускаю ... любые советы по устранению неполадок будут оценены.

попробовать { MailMessage message = new MailMessage (); message.From = new MailAddress (from.Text);

            message.To.Add(new MailAddress(to.Text));
            //message.To.Add(new MailAddress("recipient2@foo.bar.com"));
            //message.To.Add(new MailAddress("recipient3@foo.bar.com"));

            //message.CC.Add(new MailAddress("carboncopy@foo.bar.com"));
            message.Subject = "Test email from cogniti";
            message.Body = "Test email from Cogniti";

            SmtpClient client = new SmtpClient();

            client.Port = Convert.ToInt32(port.Text);
            client.Host = smtp.Text;
            client.Credentials = new System.Net.NetworkCredential(username.Text, passwordBox1.Password);
            //client.UseDefaultCredentials = true;

            if (ssl.Text.Equals("1"))
                client.EnableSsl = true;
            else
                if (ssl.Text.Equals("2"))
                    client.EnableSsl = false;
                else
                    client.EnableSsl = false;


            client.UseDefaultCredentials = false;
            client.Send(message);

            MessageBox.Show("Message Sent to: " + to.Text);
        }
        catch (Exception e3)
        {
            MessageBox.Show(e3.Message);
            MessageBox.Show(e3.InnerException.ToString());
            MessageBox.Show(e3.Source);
            MessageBox.Show(e3.StackTrace);
        }

1 Ответ

0 голосов
/ 27 февраля 2011

Вы пытались переместить

client.UseDefaultCredentials = false;

до

client.Credentials = new System.Net.NetworkCredential(...

Очевидно, что если свойство UseDefaultCredentials не установлено до фактического задания учетных данных клиента, команда AUTH отправляться не будет.

...