none
Como inserir mais de uma imagem no corpo do email? RRS feed

  • Pergunta

  • Olá pessoal, estou com o seguinte problema: estou tentando enviar e-mails que possam exibir várias imagens em seu corpo. Consigo enviar mensagens com apenas uma imagem no corpo sem problema nenhum e estou conseguindo criar a devida lista de LinkedResources. Quando envio mais de uma imagem, somente a ultima anexada ao documento é exibida. Ao depurar o programa, não encontro problema algum.

    Penso eu que o problema está ocorrendo porque, durante o envio, não há um nome propriamente dito para a imagem que está sendo enviada, o que faz com que uma imagem sobrescreva a outra. Cheguei a esta conclusão porque quando envio algum email para alguma conta do yahoo, a imagem chega como anexo com o nome "Sem título". É como se cada imagem, por padrão, recebe-se o nome de "Sem titulo" e sobrescrevesse as outras.

    Segue abaixo o meu código:

    Dim corpoMensagem As String = File.ReadAllText("C:\mensagens\msg.txt") Dim listaImagens As New List(Of String) Dim listaReferencias As New List(Of String) Dim hashs As New List(Of String) corpoMensagem = NewsLetter.GerarCorpoDaMensagem(corpoMensagem, listaImagens, listaReferencias, hashs) For i As Integer = 0 To hashs.Count - 1 corpoMensagem = corpoMensagem.Replace(hashs(i) + "'>", listaReferencias(i)) Next umNewsLetter.Mensagem.Body = corpoMensagem File.Delete("C:\mensagens\msg.txt") Dim cont As Integer = 0 For Each Path As String In listaImagens Dim alView As AlternateView = AlternateView.CreateAlternateViewFromString(umNewsLetter.Mensagem.Body, Nothing, MediaTypeNames.Text.Html) Dim lResource As New LinkedResource(Path) lResource.ContentType = New System.Net.Mime.ContentType("text/image") lResource.ContentId = "content" + cont.ToString()) alView.LinkedResources.Add(lResource) umNewsLetter.Mensagem.AlternateViews.Add(alView) cont += 1 Next If Titulo.Text <> "" Then umNewsLetter.Mensagem.Subject = Titulo.Text End If umNewsLetter.Mensagem.IsBodyHtml = True umNewsLetter.Mensagem.Sender = New MailAddress(De.Text) umNewsLetter.Mensagem.From = New MailAddress(De.Text) umNewsLetter.Mensagem.Priority = MailPriority.High umNewsLetter.ClienteSMTP = New SmtpClient(Me.SERVIDORSMTP, Me.PORTASMTP) umNewsLetter.ClienteSMTP.Credentials = New NetworkCredential(De.Text, Senha.Text)

      If umNewsLetter.Enviar() Then
                MsgBox("E-mail enviado com sucesso")
            Else
                MsgBox("Ocorreu uma falha durante o envio do e-mail")
            End If



    • Editado JulioMurta terça-feira, 1 de outubro de 2013 20:10 bunda
    terça-feira, 1 de outubro de 2013 20:08

Respostas

  • Bom dia,

    Nesse link tem um exemplo de como realizar tal procedimento: http://www.freevbcode.com/ShowCode.asp?ID=5486

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Giovani Cr segunda-feira, 7 de outubro de 2013 12:05
    quarta-feira, 2 de outubro de 2013 15:25