Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sames Davis

Enviar email Outlook qualquer versão Office

Recommended Posts

Olá pessoal,

Tenho um sistema que roda em vários micros e cada um deles com versões diferentes do office.

O meu código não está dando certo, segue

referenciei o outlook e usei o imports

Imports Microsoft.Office.Interop
    Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
        Cursor.Current = Cursors.WaitCursor
        Try
            Dim tempApp As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application
            'Dim tempApp = GetObject(, "Outlook.Application")
            Dim tempNS As Outlook.NameSpace
            Dim MailFolder As Outlook.MAPIFolder
            tempNS = tempApp.GetNamespace("MAPI")
            tempNS.Logon(, , True, True)
            Dim newMail As Outlook.MailItem = Nothing
            MailFolder = tempNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox)
            newMail = MailFolder.Items.Add(Outlook.OlItemType.olMailItem)
            With newMail
                .To = txtPara.Text
                .Subject = txtAssunto.Text
                .Body = txtMensagem.Text
                .Send()
            End With
            newMail = Nothing
            MailFolder = Nothing
            tempNS = Nothing
            tempApp = Nothing
            DialogResult = DialogResult.Yes
        Catch ex As Exception
            MsgBox(ex.ToString())
            DialogResult = DialogResult.No
        Finally
            Cursor.Current = Cursors.Default
        End Try
    End Sub

 

se eu usar essa linha

Dim tempApp As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application

ele só funciona no office2007

se eu usar essa linha, ele dá a mensagem de que não posso criar objeto activex

Dim tempApp = GetObject(, "Outlook.Application")

o que faço ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhá recomendo você usar as bibliotecas do .net (https://msdn.microsoft.com/pt-br/library/system.net.mail(v=vs.110).aspx) para disparar ao invés de tentar usar as do office.

Assim não terá nenhum problema de versão do office!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque usar o outlook para realizar o envio se a aplicação já pode chamar diretamente o servidor SMTP/Exchange para enviar o e-mail?

 

SMTP:

http://www.andrealveslima.com.br/blog/index.php/2015/05/13/enviando-e-mails-com-c/

https://msdn.microsoft.com/en-us/library/swas0fwc(v=vs.110).aspx

 

Exchange:

https://msdn.microsoft.com/en-us/library/office/dn567668(v=exchg.150).aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Amayamethew
      Eu tenho 5 contas em nuvem do Office 365. Quero fechar dois deles, mas antes disso, quero fazer backup dos meus e-mails importantes da conta do Office 365. Verifiquei as soluções manuais, mas as achei difíceis. Existe alguém que possa me sugerir uma solução simples e rápida para fazer backup dos emails do Office 365?
    • Por Bruno Henrique Magro
      Preciso enviar e-mails com o PHP, porém, não deixar que o e-mail seja enviado automaticamente. Quero fazer um e-mail já com o corpo definido em HTML, como o código abaixo:
      O problema do código é que ele é executado apenas como um servidor na rede.
      Eu já consegui fazer um código em javaScript usado o activeXObject, no entanto, o que é apenas um exemplo do Internet Explorer e o que é que está funcionando com o Chrome.
       
      O código que consegui fazer e que envia e-mail sem problemas é o abaixo, mas ele executa apenas no servidor, inclusive quando utilizo o método Display.
      <?php $subject="Assunto do e-mail"; $message="<b>Corpo</b> do e-mail em HTML"; $to="xxxxxxxxx@hotmail.com"; // starting outlook com_load_typelib("outlook.application"); if (!defined("olMailItem")) {define("olMailItem",0);} $outlook_Obj = new COM("outlook.application") or die("Unable to start Outlook"); //just to check you are connected. echo "Loaded MS Outlook, version {$outlook_Obj->Version}\n"; $oMsg = $outlook_Obj->CreateItem(olMailItem); $oMsg->Recipients->Add($to); $oMsg->Subject=$subject; $oMsg->HTMLBody=$message; $oMsg->Display(); //$oMsg->Send(); ?>  
    • Por Gustavo2503
      Quando eu abro o email no Gmail, vai em formato de HTML, mas no Outlook fica todo zuado, o código está assim:
      $email_enviar = "Nome <email@exemplo.com>"; $email_para = "Nome <email@exemplo.com>"; $cabecalho = 'MIME-Version: 1.0' . "\r\n"; $cabecalho.= 'Content-type: text/html; charset=UTF-8;' . "\r\n"; $cabecalho.= "Return-Path: $email_enviar \r\n"; $cabecalho.= "From: $email_enviar \r\n"; $cabecalho.= "Reply-To: $email_enviar \r\n"; $assunto = "Assunto"; $menssagem = " <!doctype html> <html lang='pt-br'> <head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Título</title> <style type='text/css'> </head> <body> <div align='center'> <h1>Título</h1> </div> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eget commodo tortor, eget tincidunt urna. Aliquam odio elit, tristique ac nisl vel, fermentum porta elit. Suspendisse urna magna, maximus et ipsum quis, rutrum tristique sem. Curabitur faucibus nulla malesuada dolor venenatis pharetra. Curabitur ac massa placerat, viverra nibh id, volutpat nibh. Vestibulum leo purus, placerat vel lorem eu, rhoncus lacinia erat. Morbi venenatis fermentum pretium.</p> </body> </html> "; if (mail($email_para, $assunto, $mensagem, $cabecalho)){ echo 'Sucesso'; } else { echo 'Erro'; }  
    • Por argl
      Ola,
      Notei que há algum tipo de malware ou similar em meu PC que usa o Outlook ou browsers pra envio de e-mail sem minha permissão.
      Passei a receber diversos e-mails de retorno de mensagem negada por servidores. Por outro lado meu provedor chega a bloquear o SMTP para mim por excesso de mensagens enviadas.
      Notei que ao desinstala o Chrome ou o Firefox (testei com os dois) reduz consideravelmente. Atualmente estou com os dois. Porém preciso do Firefox para acessar certas páginas do governo formatadas para Firefox. Atualmente tenho o Kaspesky Total Security instalado. 
       
      Seguem logs:
       
      https://www.cjoint.com/c/HGDx10wjIaJ
      https://www.cjoint.com/c/HGDx2D21ijJ
       
       
    • Por johnlfsilver
      Troquei as senhas dos emails no CPanel como padrão, após fazer isso todos os emails, mesmo aqueles que não foram trocadas as senhas deixaram de logar pélo outlook e pelo thunderbird, estão acessiveis apenas pelo webmail.

      Alguma ideia de como faço para corrigir isso? As configurações de servidor nos clientes de email estão corretas.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.