none
Como anexar um anexo de um item de uma lista sharepoint em message.Attachments.AddFileAttachment? RRS feed

  • Pergunta

  • Olá,

    Eu tenho uma função que envia emails através da classe EmailMessage.
    Tudo funciona bem, entretanto não estou conseguindo adicionar o anexo de um item de uma lista do sharepoint.

    Alguém sabe como fazer isto?

    Preciso de algo assim:

    message.Attachments.AddFileAttachment("http://caminhoDoanexoDaminhaLista//");

    Obrigado


    k2rto4 - Analista SharePoint Jr.

    terça-feira, 22 de maio de 2012 15:55

Respostas

  • public FileAttachment AddFileAttachment (
        string name,
        byte[] content
    )

    Você só precisa pegar o item e converter em array de bytes.

    Ex.:

    SPList lista = SPContext.Current.Web.Lists["Documentos"];

    SPListItem documento = lista.Items[0];

    Byte[] arraybytes = documento.File.OpenBinary();

    Qualquer dúvida é só responder.

    Abs,


    • Marcado como Resposta TI DEV quarta-feira, 23 de maio de 2012 12:12
    terça-feira, 22 de maio de 2012 18:31
  • Bom dia Rafael Fausto,

    É isso ai mesmo.
    No meu caso eu fiz desta forma:

    //Defino de qual lista quero pegar o anexo
    SPList MinhaLista = web.Lists["NomedaLista"];

    //Pego as informações do item desejado
    SPListItem item = MinhaLista.GetItemById(IdNomedaLista);

    //Crio rotina que le todos os anexos deste item da lista
    for (int Index = 0; Index < item.Attachments.Count; Index++)
        {
            string url = NomedaLista.Attachments.UrlPrefix + item.Attachments[Index];
            SPFile file = MinhaLista.ParentWeb.GetFile(url);                               

     //Atribuo o caminho formatado do meu anexo do item da lista aos anexos da classe EmailMessage
            message.Attachments.AddFileAttachment(file.Name, file.OpenBinaryStream());
        }

    Obrigado
    Att,

    K2rto4


    k2rto4 - Analista SharePoint Jr.

    • Marcado como Resposta TI DEV quarta-feira, 23 de maio de 2012 12:12
    quarta-feira, 23 de maio de 2012 12:11

Todas as Respostas

  • K2rto4,

    Qual o namespace dessa classe? Vc já procurou na internet ou na documentação da classe de como enviar anexos?


    Atenciosamente,

    Fabian André Gehrke
    MCITP e MCPD SharePoint 2010
    http://fabiangehrke.com.br

    terça-feira, 22 de maio de 2012 18:27
    Moderador
  • public FileAttachment AddFileAttachment (
        string name,
        byte[] content
    )

    Você só precisa pegar o item e converter em array de bytes.

    Ex.:

    SPList lista = SPContext.Current.Web.Lists["Documentos"];

    SPListItem documento = lista.Items[0];

    Byte[] arraybytes = documento.File.OpenBinary();

    Qualquer dúvida é só responder.

    Abs,


    • Marcado como Resposta TI DEV quarta-feira, 23 de maio de 2012 12:12
    terça-feira, 22 de maio de 2012 18:31
  • Bom dia Rafael Fausto,

    É isso ai mesmo.
    No meu caso eu fiz desta forma:

    //Defino de qual lista quero pegar o anexo
    SPList MinhaLista = web.Lists["NomedaLista"];

    //Pego as informações do item desejado
    SPListItem item = MinhaLista.GetItemById(IdNomedaLista);

    //Crio rotina que le todos os anexos deste item da lista
    for (int Index = 0; Index < item.Attachments.Count; Index++)
        {
            string url = NomedaLista.Attachments.UrlPrefix + item.Attachments[Index];
            SPFile file = MinhaLista.ParentWeb.GetFile(url);                               

     //Atribuo o caminho formatado do meu anexo do item da lista aos anexos da classe EmailMessage
            message.Attachments.AddFileAttachment(file.Name, file.OpenBinaryStream());
        }

    Obrigado
    Att,

    K2rto4


    k2rto4 - Analista SharePoint Jr.

    • Marcado como Resposta TI DEV quarta-feira, 23 de maio de 2012 12:12
    quarta-feira, 23 de maio de 2012 12:11