Notifications
Clear all

Usando excel para enviar email para outlook 365

6 Posts
2 Usuários
0 Reactions
2,310 Visualizações
(@danilodga)
Posts: 15
Active Member
Topic starter
 

Bom dia,
Ocorreu uma mudança aqui na empresa, do office outlook para o outlook 365, com isso minha planilha não está mais enviando emails devido essa mudança. Os senhores teriam um código para o outlook 365?

desde já grato.

 
Postado : 06/01/2017 7:27 am
(@brunomotta)
Posts: 26
Eminent Member
 

Pessoal bom dia, estou com o mesmo problema a diferença é que não tenho nenhuma macro criada que pudesse resolver meu problema. Tenho uma planilha de controle com vários vencimentos e meu chefe gostaria que quando atingisse cada um dos prazos, disparasse um e-mail para lembrete de vencimento para pelo menos 5 pessoas responsáveis. Encontrei alguns códigos que enviam apenas para um destinatário, e também buscando os vencimentos em uma única coluna.
Minha idea é sempre que quando a planilha for aberta, ou seja, irei configurar para que a planilha abra sempre junto com Windows, a macro automaticamente fará um loop na sheet, e quando encontrasse uma data com 5 dias antes do vencimento, copiasse a linha com as informações e enviasse no corpo do e-mail.
PASSO 01: Ao abri a planilha, fazer loop buscando vencimentos com 5 dias antes;
PASSO 02: Copiar linha com as informações, e colar no corpo do email;
PASSO 03: Enviar o aviso para pelo menos 5 responsáveis (destinatários) ao mesmo tempo.

Segue exemplo abaixo que encontrei com os parceiros dos fóruns, porém este é para fazer o processo pelo Outlook, no meu caso teria que ser pelo Outlook 365.

Sub CriaEmail(Destinatario As String, cCopia As String, NomeDoArquivo As String)
            Dim objOutlook As Object
            Dim objMail As Object
            Dim myAnexos
            Dim myDestinatario
            Dim myCopia
            
            'Cria um novo item de email e altera suas propriedades
            Set objOutlook = CreateObject("Outlook.Application")
            
            'Cria uma nova instancia de item de email
            Set objMail = objOutlook.Application.CreateItem(olMailItem)
            Set myAnexos = objMail.Attachments
            Set myDestinatario = objMail.Recipients
            
        
            With objMail
                'Define o corpo do email em HTML
                    .BodyFormat = olFormatHTML
                    .Importance = 2
               ' Cria as tag com as informações no corpo da mensagem
                    .HTMLBody = "<HTML>" & _
                        "<BODY><p>Prezados (as),</p>" & _
                        "<p>Para complementação da atualização do banco de dados de " & _
						"considerando todos os campos.</p>" & _
                        ".</BODY></HTML>"
                ' Define o Destinatário da Mensagem nos campos Para
                    myDestinatario.Add (Destinatario)
                    myCopia = "fulano@dominio.com.br"
                    myCopia = myCopia & cCopia
                    .CC = myCopia
                    .BCC = "cicrano@dominio.com.br"
                ' Anexa o respectivo Extrato
                    myAnexos.Add NomeDoArquivo
                ' Cria o Título do Email
                    .Subject = "Validação Bco Dados"
                    .Display ' Exibe a mensagem na Tela
                    SendKeys "%mm"
                    .Send
            End With
        End Sub

Exemplo:
PLANILHA:
Cod Data Empresa Produto

1 21/03/08 XYZ Mesa

2 22/03/08 Beta Soluções Cadeira

3 05/04/08 Apinfy Sapato

ENVIO:
Assunto do email: Datas expiradas

Corpo do email: Cod Data Empresa Produto

1 21/03/08 XYZ Mesa

2 22/03/08 Beta Soluções Cadeira

 
Postado : 13/02/2017 7:18 am
(@brunomotta)
Posts: 26
Eminent Member
 

Encontrei isto também, mas precisa de adaptação.

Private Sub Command1_Click()

    Dim oSmtp As New EASendMailObjLib.Mail
    oSmtp.LicenseCode = "TryIt"

    ' Set your Hotmail email address
    oSmtp.FromAddr = "liveid@hotmail.com"

    ' Add recipient email address
    oSmtp.AddRecipientEx "support@emailarchitect.net", 0

    ' Set email subject
    oSmtp.Subject = "test email from hotmail account"

    ' Set email body
    oSmtp.BodyText = "this is a test email sent from VB 6.0 project with hotmail"

    ' Hotmail SMTP server address
    oSmtp.ServerAddr = "smtp.live.com"

    ' Hotmail user authentication should use your
    ' Hotmail email address as the user name.
    oSmtp.UserName = "liveid@hotmail.com"
    oSmtp.Password = "yourpassword"

    ' Set port to 587, if you want to use 25 port, please change 587 to 25
    oSmtp.ServerPort = 587

    ' detect SSL/TLS connection automatically
    oSmtp.SSL_init

    MsgBox "start to send email ..."
    If oSmtp.SendMail() = 0 Then
        MsgBox "email was sent successfully!"
    Else
        MsgBox "failed to send email with the following error:" & oSmtp.GetLastErrDescription()
    End If

End Sub
 
Postado : 13/02/2017 7:26 am
(@brunomotta)
Posts: 26
Eminent Member
 

Pessoal boa tarde, já consegui utilizar o último código que postei, na planilha para enviar um e-mail pelo outlook 365. Falta apenas adapta-lo, para isso preciso automatizar uma busca na coluna 27 da planilha "LICENÇAS", caso encontre os valor 180, 90, 60, e 30 nesta coluna, então aciona a macro para envio de e-mail.

Será que alguém poderia me ajudar a desenvolver esse código?

 
Postado : 13/02/2017 1:58 pm
(@brunomotta)
Posts: 26
Eminent Member
 

Amigos, bom dia

Alguém pode me ajudar, não consigo adaptar o código de envio de e-mail de acordo como preciso. Criei uma planilha de controle de licenças aqui no meu trabalho, e agora meu chefe quer que eu faça com que seja disparados para ele e-mails automático de acordo com os prazos de renovação das licenças, ele determinou que seja alertado através de e-mail, 180 dias antes da data de renovação da licença, outro alerta com 90 dias antes, e outro quando atingir 30 dias antes, na contagem decrescente que fiz na fórmula da coluna.
Eu criei uma coluna com fórmula para contagens de dias antes do vencimento, mas não consigo criar uma condição através de vba, para quando toda vez que abrir a planilha, o loop identifica os valores 180, 90, 30 e envia o e-mail de alerta de vencimento próximo.

Estou enviando em anexo um exemplo de parte da planilha, pois ela é muito pesada com todos os registros. Tentei simular as datas.

Por favor me ajudem amigos, já busquei todas as informações na internet e não achei nada parecido.

Lembrando não sou "expert" como vocês em VBA.

 
Postado : 14/02/2017 7:20 am
(@brunomotta)
Posts: 26
Eminent Member
 

Poxa ninguém vai me ajudar? Pensei que eu conseguiria alguma ajuda aqui no fórum, mas vejo que ninguém está interessado no meu problema.
Desanimei! (:/)

 
Postado : 15/02/2017 8:10 am