Jump to content

Email com Imagem


dezinh20
 Share

Recommended Posts

Olá estou tentando enviar um email com imagem. blz ele envia normalmente,

mas quando tento inserir um texto no meio da imagem ele não insere

eu quero colocar

imagem

texto

mas não vai !! ele só insere a imagem... alguem pode me ajudar?

       
     Dim mail As New MailMessage()

            'set the addresses
            mail.From = New MailAddress("******.com")
            mail.To.Add("*******.br")

            'set the content
            mail.Subject = "Recuperar Senha"

            'first we create the Plain Text part
            Dim plainView As AlternateView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", Nothing, "text/plain")

            'then we create the Html part
            'to embed images, we need to use the prefix 'cid' in the img src value
            'the cid value will map to the Content-Id of a Linked resource.
            'thus <img src='cid:companylogo'> will map to a LinkedResource with a ContentId of 'companylogo'
            Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(".<img src=cid:companylogo>", Nothing, "text/html")

            'create the LinkedResource (embedded image)
            Dim logo As New LinkedResource("C:\Users\andre\Desktop\senha\cabecalho.png")
            Dim login As String = "Login = Usertal"
            logo.ContentId = "companylogo"
            'add the LinkedResource to the appropriate view
            htmlView.LinkedResources.Add(logo)


            'add the views
            mail.AlternateViews.Add(plainView)
            mail.AlternateViews.Add(htmlView)
            mail.Body = "Login = usertal"
            mail.IsBodyHtml = True

            'send the message
            Dim smtp As New SmtpClient("******com.br") 'specify the mail server address
            smtp.Send(mail)



        Catch ex As Exception
            MsgBox(ex)
        Finally
            File.Delete("")
        End Try

    End Sub
Link to comment
Share on other sites

Amigo, tente com este código...

'------------ MANDANDO E-MAILS PELO GMAIL
        'Dim NumeroFigura As String = "C:\temp\winnt" + "imagem1.jpg"
        Const destino As String = "seu email"

        'CONTEÚDO DO CORPO DO EMAIL
        Const Body As String = "Teste de e-mail. Dê uma olhada!!"
        'Dim respostaEnvioLabel As String

        Dim remetenteEmail As String = "seu email" '; //O e-mail do remetente
        Dim mail As MailMessage = New MailMessage()

        With mail
            .To.Add(destino)
            .From = New MailAddress(remetenteEmail, "Teste", System.Text.Encoding.UTF8)
            .Subject = "Assunto: teste de email pelo vb.net"
            .SubjectEncoding = System.Text.Encoding.UTF8
            .Body = Body
            .BodyEncoding = System.Text.Encoding.UTF8
            .IsBodyHtml = True
            .Priority = MailPriority.Normal   'prioridade do email
            'USADA PRA MANDAR ANEXOS
            '.Attachments.Add(New Attachment(NumeroFigura))
        End With

        Dim client As SmtpClient = New SmtpClient() '//Adicionando as credenciais do seu e-mail e senha:
        With client
            .Credentials = New System.Net.NetworkCredential(remetenteEmail, "senha")
            .Port = 25
            .Host = "smtp.gmail.com" '; //Definindo o provedor que irá disparar o e-mail
            .EnableSsl = True '; //Gmail trabalha com Server Secured Layer
        End With

        Try
            client.Send(mail)
            MsgBox("Envio do E-mail com sucesso")
            'MsgBox(respostaEnvioLabel)
        Catch ex As Exception
            MsgBox("Ocorreu um erro ao enviar:" + ex.Message)
            'MsgBox(respostaEnvioLabel)
        End Try

EDIT: GeSHi adicionado

Link to comment
Share on other sites

entendo o seu codigo pode até funcionar mas em nenhum momento você utiliza imagem

quero colocar uma imagem no corpo do email, sem a necessidade da pessoa fazer downlaod ou ter anexo...

Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(".<img src=cid:companylogo>", Nothing, "text/html")

este codigo gera a imagem

e este codigo

 htmlView.LinkedResources.Add(logo)

adiciona no corpo da mensagem

o problema é que não consigo colocar uma mensagem depois da imagem....

Link to comment
Share on other sites

Bom pessoas consegui fazer e vou explicar caso alguém queira também

Public Sub EnviaEmail(ByVal from As String, ByVal recepient As String, ByVal bcc As String, ByVal cc As String, ByVal subject As String, ByVal body As String, ByVal servidorSMTP As String, ByVal anexo As String)
        Try

            'create the mail message
            Dim mail As New MailMessage()

            'set the addresses
            mail.From = New MailAddress(from) 'email para de destino
            mail.To.Add(to) 'email para quem enviou

            'set the content
            mail.Subject = "Recuperar Senha" ' o Assunto do Email

            'Este codigo PlainView e caso o email não suporte Html, nisto ele irá informar este erro

            Dim plainView As AlternateView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", Nothing, "text/plain")

             'crie um corpo de texto caso deseje assim você poderá colocar um texto no meio de duas imagens
            Dim body As String = "Login, Senha"

            'Vamos Iniciar a Parte das Imagens
            ' as imagens ficam no prefixo 'cid' eles irão pegar os seus ContentId e irão destinar as imagens 
            ' você pode criar varias imagens colocando diferentes ContentId 
            ' Veja: <img src='cid:companylogo'> o LinkedResource ( que veremos logo a baixo ) irá destinar a imagem que tenha o  ContentId com o nome de  'companylogo'

            ' aqui você cria o corpo da mensagem com ele você pode criar e desenvolver mais

            Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString("<img src=cid:companylogo> <p> <class='body'>  " + body + "</div>  <img src=cid:Comlog>   ", Nothing, "text/html")


            'você irá dizer aonde estão as suas imagens e elas irão para Logo e Logo1

            Dim logo As New LinkedResource("C:\Users\andre\Desktop\senha\cabecalho.png")

            Dim logo1 As New LinkedResource("C:\Users\andre\Desktop\senha\rodape.png")

     ' Lembra do ContentId então aqui que você irá dizer aonde fica as imagens
      ' Olhe ali o htmlview ele tem o ' <img scr=cid:companylogo> ' ele que diz a que a imagem que tenha a propriedade com o nome 'Companylogo' irá ficar aqui
      ' e é nesta parte aonde você diz o nome delas.

            logo.ContentId = "companylogo"
            logo1.ContentId = "Comlog"

            ' ok agora o Sistema sabe que a ContentId da imagem 'logo' tem o nome de 'companylogo' mas ele não sabe aonde você quer adicionar, 
            'por isto você deve informar. 
            ' como temos mais de uma imagem você deve adicionar mais de uma linha conforme visto a baixo.
            htmlView.LinkedResources.Add(logo)
            htmlView.LinkedResources.Add(logo1)

'ok, agora só criar o email, digitando o Plainview aonde ele irá criar um segundo plano caso o email não aceite html e irá colocar a imagem caso aceite 

            With mail
                 .AlternateViews.Add(plainView)
                .AlternateViews.Add(htmlView)

            End With
        
            mail.IsBodyHtml = True

         
            Dim smtp As New SmtpClient(servidorSMTP )    'informe o nome do SMTPclient que seria de quem está enviando
            smtp.Send(mail) ' e envie o email



        Catch ex As Exception  'caso haja algum erro crie uma msg de aviso.
            MsgBox(ex)
        Finally
            '  File.Delete("")
        End Try

    End Sub

Bom a parte do Body não está formatada então ele vem como padrão do html -.-' ( ainda estou tentando resolver isto, mas odeio css srsr.. ) , mas Façam estes testes que irão entender melhor,

substituindo os campos.

😄

qualquer duvida só me perguntar 🙂

Link to comment
Share on other sites

Olá, sobre seu envio de e-mail, eu o utilizei e preciso tirar uma duvida, tenho um processo em "tabela" que estou utilizando imagens, e os dados do usuário.

Porém, está me aparecendo sempre por primeiro os dados dessa tabela com imagens, e depois os dados do usuário. E não encontrei como inverter. Está me aparecendo uma divisão cinza e depois os dados do usuário.

Link to comment
Share on other sites

Dim assuntoMensagem As String

'Dim conteudoMensagem As String

assuntoMensagem = "Pedido de Licença de " & ValorCampos(0)

Dim sbody As String = ""

sbody = sbody & "Aplicativo: " & ValorCampos(0) & "<br/>"

sbody = sbody & "Data de Instalação: " & ValorCampos(3) & "<br/>"

sbody = sbody + "Nome: " & ValorCampos(4) & "<br/>"

sbody = sbody + "Empresa: " & ValorCampos(6) & "<br/>"

sbody = sbody + "País: " & ValorCampos(21) & "<br/>"

sbody = sbody + "E-mail: " & ValorCampos(12) & "<br/>"

sbody = sbody + "Observações: " & ValorCampos(19) & "<br/>" & "<br/>" & "<br/>"

'Cria objeto com dados do e-mail.

Dim objEmail As New System.Net.Mail.MailMessage()

''////////////////''

Dim html As AlternateView = AlternateView.CreateAlternateViewFromString(sbody, Nothing, "text/html")

If DtProcesso.Rows.Count > 0 Then

For num = 0 To DtProcesso.Rows.Count - 1

Dim col As Integer = 0

Dim nomeProc As String = DtProcesso(num)(col).ToString

Dim valor As Integer = DtProcesso(num)(col + 1)

Select Case valor

Case 1

nomeProc & "<img src=cid:true > <br/>" ''' image com check

Case 2

nomeProc & "<img src=cid:false ><br/>" ''' imagem com exclusão

End Select

Next

End If

Mais ou menos assim, Nelson. Tenho dados em uma tabela em 'memória', tenho dados do usuário + dados dessa tabela em memória para ir ao e-mail. No caso da tabela em memória, ela retorna um valor na variavel 'valor', que se caso for '1' seria uma imagem de check se caso for '0' imagem de exclusão.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.