none
Как добавить в письмо кнопку RRS feed

  • Вопрос

  • Добрый день коллеги!

    Для отправки письма из программы написал вот такой код

     Dim emailMessage As New MailMessage()
            Try
                emailMessage.From = New MailAddress("test@mail.ru")
                emailMessage.To.Add("test@mail.com")
                emailMessage.Subject = "test"
                emailMessage.Body = "Выполните действие "
                emailMessage.

                Dim smtp As New SmtpClient("smtp.mail.ru")
                smtp.Port = 2525
                smtp.EnableSsl = True
                smtp.Credentials = New System.Net.NetworkCredential("test@mail.ru", "Pass")
                smtp.Send(emailMessage)
                MsgBox("сообщение отправлено")
            Catch ex As Exception
                MsgBox(ex.Message, , "Операция завершилась с ошибкой")
            End Try

    как добить кнопки  "Да" "Нет" для подтверждения выполнения действия см. рис.

    и как потом передать действие в программу какая кнопка была нажата.

    9 октября 2015 г. 10:59

Ответы

Все ответы

  • Ну для кнопок вам формат письма необходимо сделать html.

    А принимать нажатие кнопки, это сформировать обработчик кнопки. Кодируете признак пользователя и пишите в базу на своем сайте, а программой читаете, какой пользователь записан с какой кнопкой.

    Я наверное так бы решала передачу данных из письма, которое неизвестно когда будет прочитано и кнопки нажаты по очереди и много раз :-)

    9 октября 2015 г. 11:56
  • emailMessage.IsBodyHtml = true;

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


    9 октября 2015 г. 12:00
  • Ну для кнопок вам формат письма необходимо сделать html.

    А принимать нажатие кнопки, это сформировать обработчик кнопки. Кодируете признак пользователя и пишите в базу на своем сайте, а программой читаете, какой пользователь записан с какой кнопкой.

    Я наверное так бы решала передачу данных из письма, которое неизвестно когда будет прочитано и кнопки нажаты по очереди и много раз :-)

    Боюсь что почтовые клиенты не будут сильно рады JS в теле письма.
    9 октября 2015 г. 16:44
  • Боюсь что почтовые клиенты не будут сильно рады JS в теле письма.
    Где JS?! Имелось ввиду Get запрос... Они применяются для отписки на подписку...
    9 октября 2015 г. 18:21
  • Боюсь что почтовые клиенты не будут сильно рады JS в теле письма.

    Где JS?! Имелось ввиду Get запрос... Они применяются для отписки на подписку...
    Вы писали про обработчик кнопки, не понятно при чем тут тип запроса. Приведите пример того что имели ввиду.
    10 октября 2015 г. 20:32
  • Вы писали про обработчик кнопки, не понятно при чем тут тип запроса. Приведите пример того что имели ввиду.
    Я имела ввиду, что информацию на сайт можно передавать GET запросом. А вы сразу решили, что GET запрос может формировать только JS, а чистый html типа ничего не может? Примеры оформления кнопки нашла сразу в поисковике тут. Поисковики рулят!
    11 октября 2015 г. 6:14
  • Вставлять в тело письма форму ради отправки GET запроса это типа грабли. К форме почтовые клиенты отнесутся практически также негативно как и к JS. 
    11 октября 2015 г. 8:24
  • Согласна. Но на цвет и вкус все фломастеры разные. Вопрос был "как добить кнопки", наверное отображать в письме кнопки - ответ "html", а на второй вопрос "и как передать какая кнопка была нажата" - ответ "GET запрос".

    По мне пусть автор вопроса задает уточняющие вопросы, это же его вопрос... :-)

    11 октября 2015 г. 9:15
  • Коллеги добрый день прошу прощения за долгое отсутствие занимался другим проектом. Я решил в своем приложении использовать ссылку " подтвердите запрос " или отправить на доработку. Тут еще возник попутный вопрос как сосздать такой шаблон письма

    в коде  Dim emailMessage As New MailMessage()
            Try
                emailMessage.From = New MailAddress("test@mail.ru")
                emailMessage.To.Add("test@mail.com")
                emailMessage.Subject = "test"
                emailMessage.Body = "<html><bodyBODY bgcolor='#87A9D4'><Table><tr><td>Hi,</td></tr>  <tr><td>Details of the Statistics :</td></tr></Table></body></html><html><body>" & "sometext" & _
                            "</body></html><html><body><Table><tr><td> </td></tr><tr><td>NOTE: This is an automated mail. Please, do not reply.</td></tr>" & _
                            "<tr><td>*Green coloured rows indicates temporary demos</td></tr>" & _
                            "<tr><td>**All statistics are based on the page naming conventions Eg., 22_10_2005_</td></tr>" & _
                            "<tr><td> </td></tr><tr><td>Regards,</td></tr><tr><td>some text,</td></tr><tr><td>some text,</td></tr>" & _
                            "<tr><td> Some text </td></tr></table></body></html>"

                 emailMessage.IsBodyHtml = True

                Dim smtp As New SmtpClient("smtp.mail.ru")
                smtp.Port = 2525
                smtp.EnableSsl = True
                smtp.Credentials = New System.Net.NetworkCredential("test@mail.ru", "Pass")
                smtp.Send(emailMessage)
                MsgBox("сообщение отправлено")
            Catch ex As Exception
                MsgBox(ex.Message, , "Операция завершилась с ошибкой")
            End Try

    на выходе хотелось бы получить следующее см. рисунок

    1 апреля 2016 г. 13:26
  • А в чем проблема-то? Просто создаете html, чтоб он так отображался в браузере и в тело письма его, ну и emailMessage.IsBodyHtml = true;
    1 апреля 2016 г. 16:33
  • Я так и сделал.Проблема в том, что на клиенте тело письма не отображается а именно фон письма. Текст отображается нормально.
    • Изменено Aleks__ 2 апреля 2016 г. 15:30
    2 апреля 2016 г. 15:28
  • Я так и сделал.Проблема в том, что на клиенте тело письма не отображается а именно фон письма. Текст отображается нормально.
    Что вы понимаете под фоном и какими средствами вы его задаете? Возможности почтовых программ при поддержке html разнятся и не все возможности некоторыми поддерживаются.
    3 апреля 2016 г. 8:00
  • Я имею ввиду картинку  указанную выше.

    1. Рамка внутри которой должен располагаться текст
    2. Цвет фона

    либо картинка а по верх этой картинки должен располагаться текст

    7 апреля 2016 г. 7:41
  • Код которым вы это делаете нам угадать и посоветовать как его исправить?
    7 апреля 2016 г. 9:26
  •     Try
                emailMessage.From = New MailAddress("test@mail.ru")
                emailMessage.To.Add("test@mail.com")
                emailMessage.Subject = "test"
    emailMessage.Body = "<html> <table border="1" <tr> " & Me.TextBox2.Text & "</tr><br><td> " & Me.TextBox1.Text & "</td></br> </html></table>"

                 emailMessage.IsBodyHtml = True

                Dim smtp As New SmtpClient("smtp.mail.ru")
                smtp.Port = 2525
                smtp.EnableSsl = True
                smtp.Credentials = New System.Net.NetworkCredential("test@mail.ru", "Pass")
                smtp.Send(emailMessage)
                MsgBox("сообщение отправлено")
            Catch ex As Exception
                MsgBox(ex.Message, , "Операция завершилась с ошибкой")
            End Try

    Текст выделен жирным Если писать  в таком виде то выдается ошибка Требуется завершение оператора. Что не так не пойму. Да и как добавить заливку пока тоже не знаю.

               



    • Изменено Aleks__ 7 апреля 2016 г. 12:34
    7 апреля 2016 г. 12:29
  • <html>

      <table border="1"

         <tr> " & Me.TextBox2.Text & "</tr>

         <br>

         <td> " & Me.TextBox1.Text & "</td>

         </br>

    </html></table>


    А если так посмотреть на вашу строку, догадались в чем проблема? Проблема с тегом table)))
    7 апреля 2016 г. 15:36
  •  Я сделал так объявил переменную Dim html As String и в нее записал код ниже

    html = "<html><body><table border= 3 bordercolor= blue><tr><td>Name = </td><td>" & Me.TextBox1.Text & "</td></tr> " & _
                     " <tr><td>Contact No. = </td><td>" & Me.TextBox2.Text & "</td></tr> " & _
                     " <tr><td>Email-ID = </td><td>" & Me.TextBox1.Text & "</td></tr> " & _
                     " <tr><td>City = </td><td>" & Me.TextBox2.Text & "</td></tr> " & _
                     " <tr><td>State = </td><td>" & Me.TextBox2.Text & "</td></tr> " & _
                     " <tr><td>Country = </td><td>" & Me.TextBox2.Text & "</td></tr><br /> " & _
                     " <tr><td>Message = </td><td>" & Me.TextBox1.Text & "</td></tr> " & _
                     " </table> </body></html>"

    и на выходе получил следующее

    8 апреля 2016 г. 5:09
  • Супер! Еще вопросы остались на которые вы сами себе ответите? )))
    8 апреля 2016 г. 6:00
  • Спасибо за помощь вопрос можно закрывать. 
    11 апреля 2016 г. 11:51