none
Форма для опроса RRS feed

  • Вопрос

  • Добрый день.

    Ребят потребовалось создать форму для теста с отправкой введенных данных пользователем на адрес электронной почты. Нашел решение ,но возникла проблема при нажатии на кнопку "Отправить" событие не срабатывает ,письмо не приходит. Подскажите в чем может быть проблема? , может я что то упустил!

    SmtpClient client = new SmtpClient("smtp.mail.ru", 2525); 
    client.Credentials = new System.Net.NetworkCredential("login­@mail­.ru", "password"); // Логин и пароль отправителя для авторизации
    
    string msgFrom = "login@mail.ru"; // Адрес отправителя
    string msgTo = "login@mail.ru"; // Адрес получателя
    string msgSubject = "Результат"; // Указываем тему пиьсма
    
    string msgBody = String.Format("Результат\n\n {0}\nОтвет1: {1}\nОтвет2: {2}",
    ToString(), textBox1.Text, textBox2.Text); // Формируем тело письма
    
    MailMessage msg = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); 
    try
    {
    client.Send(msg); 
    }
    catch { }


    1 июля 2015 г. 13:24

Ответы

  • Порт для SMTP у mail.ru 465, а не 2525....

    Пробовал менять порт ,программа зависает
    Это первое, что бросилось в глаза, так как сама обожглась на портах когда настраивала обратную связь на своем сайте. Возможно есть еще что-то что не бросилось сразу в глаза. У мыла есть страница помощи попробуйте там поискать нужную вам инфу про коннект к почте. А может и этот пост вам чем поможет...
    • Помечено в качестве ответа dmitrijsviridov 4 июля 2015 г. 21:58
    1 июля 2015 г. 19:47

Все ответы

  • Я бы поставил бряку на строку

    MailMessage msg = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); 

    и посмотрел бы что происходит.

    Что то мне подсказывает, что

    client.Send(msg); 

    валится с ошибкой, но, т.к. в catch ничего нет, то программа завершается штатно без обработки exception.

    1 июля 2015 г. 13:32
  • Я бы поставил бряку на строку

    MailMessage msg = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); 

    и посмотрел бы что происходит.

    Что то мне подсказывает, что

    client.Send(msg); 

    валится с ошибкой, но, т.к. в catch ничего нет, то программа завершается штатно без обработки exception.

    Что значит (Я бы поставил бряку на строку ????) ,визуально покажи пжл
    1 июля 2015 г. 14:09
  • После запуска программы в режиме отладки, она выполнится до бряки и остановится. После чего можно пошагово выполнять следующюю строку кода и смотреть значения переменных и другую информацию.

    В моем случае программа сформирует запрос и остановится перед отправкой запроса на сервер. Соответственно переменную Query можно будет проверить.

    Чтобы поставить бряку, нужно ткнуть мышкой в районе красной точки (её не будет, пока туда не ткнуть) на против строки, у которой нужно поставить бряку.

    P.S. при ручном дебаге в try/catch, если ловится exception, то выполнение перелетает в catch и дальше всё работает штатно.

    • Изменено xjomanx 1 июля 2015 г. 14:25
    1 июля 2015 г. 14:15
  • После запуска программы в режиме отладки, она выполнится до бряки и остановится. После чего можно пошагово выполнять следующюю строку кода и смотреть значения переменных и другую информацию.

    В моем случае программа сформирует запрос и остановится перед отправкой запроса на сервер. Соответственно переменную Query можно будет проверить.

    Чтобы поставить бряку, нужно ткнуть мышкой в районе красной точки (её не будет, пока туда не ткнуть) на против строки, у которой нужно поставить бряку.

    client

    .Send(msg);- msg -пустой null,

    1 июля 2015 г. 14:52
  • хотелось бы увидеть скриншот :)

    По Ваешму коду, не может быть она null :)

    Точнее может, если вы остановились там, где я сказал. Для выполнения следующей строчки нужно нажать F11. Тогда строчка выполнится и стрелка текущей позиции сместится вниз.

    При этом msg уже не должно быть null.

    потом нужно нажать еще раз f11 и т.д. до конца программы.

    При этом нужно посмотреть, не попадаете ли вы в catch. Если попадаете, то

    client.Send(msg); 

    кидает ошибку, её надо исправлять.

    • Изменено xjomanx 1 июля 2015 г. 15:01
    1 июля 2015 г. 14:55
  • Для выполнения следующей строчки нужно нажать F11. Тогда строчка выполнится и стрелка текущей позиции сместится вниз.

    При этом msg уже не должно быть null.

    потом нужно нажать еще раз f11 и т.д. до конца программы.

    При этом нужно посмотреть, не попадаете ли вы в catch. Если попадаете, то это проблема.

    P.S. на время дебага можно закомментировать try и catch.


    1 июля 2015 г. 15:04
  • Для выполнения следующей строчки нужно нажать F11. Тогда строчка выполнится и стрелка текущей позиции сместится вниз.

    При этом msg уже не должно быть null.

    потом нужно нажать еще раз f11 и т.д. до конца программы.

    При этом нужно посмотреть, не попадаете ли вы в catch. Если попадаете, то это проблема.

    P.S. на время дебага можно закомментировать try и catch.


    В  catch попадаю ,  а как понять в чем ошибка (client.Send(msg); )
    1 июля 2015 г. 15:11
  • Порт для SMTP у mail.ru 465, а не 2525....
    1 июля 2015 г. 15:16
  • Порт для SMTP у mail.ru 465, а не 2525....
    Пробовал менять порт ,программа зависает
    1 июля 2015 г. 15:21
  • Для выполнения следующей строчки нужно нажать F11. Тогда строчка выполнится и стрелка текущей позиции сместится вниз.

    При этом msg уже не должно быть null.

    потом нужно нажать еще раз f11 и т.д. до конца программы.

    При этом нужно посмотреть, не попадаете ли вы в catch. Если попадаете, то это проблема.

    P.S. на время дебага можно закомментировать try и catch.


    В  catch попадаю ,  а как понять в чем ошибка (client.Send(msg); )
    client.Send(msg); указывает что почтовый ящик не активен
    1 июля 2015 г. 15:22
  • Уберите try\catch и у вас выскочит ошибка.

    Второй вариант написать:

    Catch (Exception ex)

    Тогда, попадая а catch переменная ex будет содержать ошибку.

    На пример ex.message будет содержать описание ошибки.

    По поводу неактивного ящика: проверьте учётные данные. Зайдите в этот ящик из почтовой программы и попробуйте отправить письмо. Если все получится, то должно получится и из вашей программы.

    1 июля 2015 г. 16:25
  • Порт для SMTP у mail.ru 465, а не 2525....

    Пробовал менять порт ,программа зависает
    Это первое, что бросилось в глаза, так как сама обожглась на портах когда настраивала обратную связь на своем сайте. Возможно есть еще что-то что не бросилось сразу в глаза. У мыла есть страница помощи попробуйте там поискать нужную вам инфу про коннект к почте. А может и этот пост вам чем поможет...
    • Помечено в качестве ответа dmitrijsviridov 4 июля 2015 г. 21:58
    1 июля 2015 г. 19:47
  • Порт для SMTP у mail.ru 465, а не 2525....

    Пробовал менять порт ,программа зависает

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

    Спасибо ,пост действительно помог

    Решением было включение ssl

    client.EnableSsl = true;

    4 июля 2015 г. 21:58