none
SPUtility.SendEmail - Проблема атрибутами html тэгов RRS feed

  • Вопрос

  • Здравствуйте!

    С формы шарепоинта отправляю письмо.

    Хочу отправить в хтмл.

    Использую:

     

    SPUtility.SendEmail(SPContext.Current.Web, true, true, mailTo, mailSubject, mailBody);

    Если mailBody содержит тэги без параметров- то все хорошо отправляется, а если с параметрами, точнее атрибутами (размер, цвет), то нет.

    Подскажите в чем проблема или может код есть у Вас, что бы послать именно цветной текст.

    Спасибо!

     

    18 января 2011 г. 11:55

Ответы

Все ответы

  • Добрый день

     

    В момент отправки письма с атрибутами вы получаете какое-то сообщение об ошибке?

    Не обрезается ли сообщение, которое отправляете?

    Одной из возможных причин может быть обрезание до 2048 символов в строке.

    • The body text parameter must have a new line character at least every 2048 characters.
      • If not, the email body will be truncated at 2048 chars.
      • For example, when using an HTML formatted body, you may have all your encoding on one line within the body string/stringbuilder parameter. You will need to insert crlf chars every 2048 characters or less.

     

    19 января 2011 г. 15:46
    Отвечающий
  • да нет, просто параметры ф-ии не те передал, все хорошо, спасибо!
    19 января 2011 г. 19:45
    • The body text parameter must have a new line character at least every 2048 characters.

    Чума полная! Это откуда?
    20 января 2011 г. 7:10
    Отвечающий
  • The SPUtility.SendEmail method will cut off a single line of body text at 2045 characters.

     

    There are 2 workarounds for this issue:

     

    1.    Inserting a “\n” in the email body string so that a single line does not exceed 2045 characters before calling SPUtility.SendEmail method. Take a look at this post to see a workaround: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/3b7627e4-886d-48db-8c54-13fdbaa6dcb6

    2.    Use the classes in System.Net.Mail Namespace (http://msdn.microsoft.com/en-us/library/system.net.mail.aspx) instead of SPUtility.SendEmail method.

    • Помечено в качестве ответа Roman Zhukov 15 марта 2011 г. 11:06
    20 января 2011 г. 20:55
    Отвечающий
  • private void SendEmail(string adress, string P)
        {
          System.Net.Mail.MailAddress From = new System.Net.Mail.MailAddress("имя сервера");
          System.Net.Mail.SmtpClient Client = new System.Net.Mail.SmtpClient(workflowProperties.Site.WebApplication.OutboundMailServiceInstance.Server.Name); // ну я из РП отправлял)
    
          System.Net.Mail.MailAddress To = new System.Net.Mail.MailAddress(adress);
          System.Net.Mail.MailAddressCollection add = new System.Net.Mail.MailAddressCollection();
    
          System.Net.Mail.MailMessage Mail = new System.Net.Mail.MailMessage(From, To);
          Mail.Subject = "Автоматическое сообщение";
          Mail.IsBodyHtml = true;
          Mail.Body = "<html><head></haed><body>"
              + "<table>"
              + "<tr><td align=center colspan=2><h1>Отчет</h1></td></tr>"
              + "<tr><td><h3>Код: </h3></td><td>" + workflowProperties.Item["Код"].ToString() + "</td></tr>"
    ......
          + "</table>"
              +"</body></html>";
          Client.Send(Mail);
        }
    
    ну это как некоторая альтернатива)
    • Предложено в качестве ответа _-DFS-_ 21 января 2011 г. 7:26
    21 января 2011 г. 7:25
  • Уважаемый пользователь!
    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
    9 марта 2011 г. 14:19