Enviar aviso por email

Moderador: Avelino Sampaio

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Enviar aviso por email

Mensagempor José Waldick » 22 Jan 2018, 14:50

Bom dia!
Conseguimos baixar um aplicativo para enviar relatório por email, que encontramos aqui neste fórum, porém ao passar do tempo sugiram novas necessidades, e um novo desafio: 'Enviar aviso de cobrança para cada cliente'; só que este aviso é pessoal, e deverá ser enviado para cada cliente. Daí vem o desafio, deverá ser feito em massa, ou seja, selecionar dois ou mais clientes simultaneamente em uma listbox e enviar para o seu respectivo email os Aviso de cobrança, onde neste deverá ser informado o nome do cliente e o respectivo valor da dívida.
Estamos enviando anexo, apenas como exemplo de como será o aplicativo final, e como desenvolver o código a partir destas telas.
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
Deus é bom e fiel!

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


ANJOSOL
Mensagens: 1
Registrado em: 17 Jan 2016, 23:03

Re: Enviar aviso por email

Mensagempor ANJOSOL » 28 Jan 2018, 00:18

Boa noite José
Eu queria acrescentar um formulário igual ao que tens na BD que disponibilizaste para puder enviar emails aos contatos que tenho cadastrados na minha base de dados
Seria adaptar o que disponibilizaste???

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 28 Jan 2018, 18:34

Boa tarde, Anjosol!
Você entendeu qual seria a nossa necessidade?
Enviar um documento específico para cada cliente, só que serão selecionados dois ou mais clientes na minha listbox.
Se o teu formulário, atende a nossa solução, pode nos enviar que faremos a adaptação, com certeza.
Estamos no aguardo!
Deus é bom e fiel!

Avatar do usuário
Avelino Sampaio
Mensagens: 2231
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Enviar aviso por email

Mensagempor Avelino Sampaio » 30 Jan 2018, 09:49

José

altere o código do botão enviar, conforme abaixo. Atente para as partes em vermelha.

Código:
Private Sub cmdenviar_Click()
Dim k, j&

If IsNull(Me!remetente) Or (Me!remetente.Value) = "" Then
MsgBox "Campo Remetente é de preenchimento obrigatório", vbCritical, "Encontros"
Me!remetente.SetFocus
Exit Sub
End If

If IsNull(Me!titulo) Or (Me!titulo.Value) = "" Then
MsgBox "Campo Título é de preenchimento obrigatório", vbCritical, "Encontros"
Me!titulo.SetFocus
Exit Sub
End If

If IsNull(Me!mensagem) Or (Me!mensagem.Value) = "" Then
MsgBox "Campo Mensagem é de preenchimento obrigatório", vbCritical, "Encontros"
Me!mensagem.SetFocus
Exit Sub
End If

k = Split(Left(LCase(Me!destino), Len(Me!destino) - 1), ";")
For j = 0 To UBound(k)
Call EnviarEmail(k(j))
Next


End Sub


e na função altere, conforme partes em vermelho.

Código:
Sub EnviarEmail(varDestino As Variant)

On Error GoTo erromail

Dim Mens As Object
Dim Config As Object
Set Mens = CreateObject("CDO.Message")
Set Config = CreateObject("CDO.Configuration")

With Config

...

.Fields.Update
End With

'Set Mens = New CDO.Message
With Mens
Set .Configuration = Config
.From = Me!remetente

.Sender = varDestino

If Not IsNull(Me!copia) Then
.CC = Me!copia
End If

If Not IsNull(Me!copiaoculta) Then
.BCC = Me!copiaoculta
End If

.ReplyTo = "emailqualquer@email.com.br"
.BodyPart.Charset = "utf-8"
.Subject = Me!titulo
.HTMLBody = Me!mensagem
.to = varDestino

Dim L As Long
...


Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 30 Jan 2018, 16:26

Avelino,
Iremos fazer as modificações, e em breve retornaremos com o resultado.
Desde já agradecemos pela a atenção!
Deus é bom e fiel!

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 01 Fev 2018, 11:03

Bom dia!
Avelino, o código ainda continua com a mesma funcionalidade do anterior, enviando o(s) mesmo(s) anexo(s) para os contatos selecionados na listbox.
Desejamos que seja enviado um anexo específico para cada contato na listbox (ex. envio de um boleto para o seu respectivo cliente); neste caso, o código está enviando todos os boletos simultaneamente para todos os contatos selecionados na listbox, onde deveria ser enviado o boleto de Avelino para o email de Avelino, e boleto de José para o email de José; é possível fazer esse código no access?
Deus é bom e fiel!

Avatar do usuário
Avelino Sampaio
Mensagens: 2231
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Enviar aviso por email

Mensagempor Avelino Sampaio » 05 Fev 2018, 08:19

Jose

não entendi muito bem mas veja se atende.

Observe as partes em vermelho:

Código:
Private Sub cmdenviar_Click()
Dim k, j&

If IsNull(Me!remetente) Or (Me!remetente.Value) = "" Then
MsgBox "Campo Remetente é de preenchimento obrigatório", vbCritical, "Encontros"
Me!remetente.SetFocus
Exit Sub
End If

If IsNull(Me!titulo) Or (Me!titulo.Value) = "" Then
MsgBox "Campo Título é de preenchimento obrigatório", vbCritical, "Encontros"
Me!titulo.SetFocus
Exit Sub
End If

If IsNull(Me!mensagem) Or (Me!mensagem.Value) = "" Then
MsgBox "Campo Mensagem é de preenchimento obrigatório", vbCritical, "Encontros"
Me!mensagem.SetFocus
Exit Sub
End If

k = Split(Left(LCase(Me!destino), Len(Me!destino) - 1), ";")
For j = 0 To UBound(k)
Call EnviarEmail(k(j), Me!lstAnexos.Column(0, k(j)))
Next


End Sub


e na função altere conforme partes em vermelho:

Código:
Sub EnviarEmail(varDestino As Variant, Optional varAnexo)

On Error GoTo erromail
...

.Subject = Me!titulo
.HTMLBody = Me!mensagem
.to = Me!destino
.AddAttachment varAnexo

'Dim L As Long
'If Me!lstAnexos.ListCount > 0 Then
'For L = 0 To Me.lstAnexos.ListCount - 1
'.AddAttachment Me!lstAnexos.Column(0, L)
'Next L
'
'Else
'End If

.Send
End With

...

End Sub


Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 05 Fev 2018, 12:59

Bom dia, Avelino!
Deixa eu ser mais objetivo; gostaria de enviar boletos por email, onde as informações deste boleto é pessoal, e o envio será em massa, ou seja, deverei selecionar dois ou mais clientes na listbox, daí cada cliente receberá o seu respectivo boleto. Ficou claro agora?
Da forma que o código está, o cliente está recebendo todos os boletos anexos, os que interessam e que não interessam a ele.
Ex: Avelino está recebendo além do seu boleto, o boleto de José, de João, de Matheus....
Deus é bom e fiel!

Avatar do usuário
Avelino Sampaio
Mensagens: 2231
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Enviar aviso por email

Mensagempor Avelino Sampaio » 05 Fev 2018, 13:09

jose

da forma como coloquei o último código, cada um recebe um único arquivo anexo. Teste

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 07 Fev 2018, 21:05

Boa noite!
Fizemos as alterações, porém o aplicativo está enviando os emails mas os receptores não estão recebendo os anexos.

Código: Selecionar todos

Private Sub cmdenviar_Click()
 
  Dim k, j&

  If IsNull(Me!remetente) Or (Me!remetente.Value) = "" Then
    MsgBox "Campo Remetente é de preenchimento obrigatório", vbCritical, "Encontros"
    Me!remetente.SetFocus
    Exit Sub
  End If
 
  If IsNull(Me!titulo) Or (Me!titulo.Value) = "" Then
    MsgBox "Campo Título é de preenchimento obrigatório", vbCritical, "Encontros"
    Me!titulo.SetFocus
    Exit Sub
  End If
 
  If IsNull(Me!mensagem) Or (Me!mensagem.Value) = "" Then
    MsgBox "Campo Mensagem é de preenchimento obrigatório", vbCritical, "Encontros"
    Me!mensagem.SetFocus
    Exit Sub
  End If
 
   
  k = Split(Left(LCase(Me!destino), Len(Me!destino) - 1), ";")
  For j = 0 To UBound(k)
    Call EnviarEmail(k(j), Me!lstAnexos.Column(0, k(j)))
  Next



Código: Selecionar todos

Sub EnviarEmail(varDestino As Variant, Optional varAnexo)


On Error GoTo erromail

Dim Mens As Object
Dim Config As Object
Set Mens = CreateObject("CDO.Message")
Set Config = CreateObject("CDO.Configuration")

With Config

.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxxxxx"
.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxxxxx"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

.Fields.Update
End With

Set Mens = New CDO.Message
With Mens
Set .Configuration = Config
.From = Me!remetente

If Not IsNull(Me!destino) Then
.Sender = varDestino
End If

If Not IsNull(Me!copia) Then
.CC = Me!copia
End If

If Not IsNull(Me!copiaoculta) Then
.BCC = Me!copiaoculta
End If

.ReplyTo = "emailqualquer@email.com.br"

.BodyPart.Charset = "utf-8"

.Subject = Me!titulo
.HTMLBody = Me!mensagem
.To = varDestino
.AddAttachment varAnexo

'Dim L As Long
'If Me!lstAnexos.ListCount > 0 Then
'For L = 0 To Me.lstAnexos.ListCount - 1
'.AddAttachment Me!lstAnexos.Column(0, L)
'Next L

'Else
'End If
.Send
End With

Set Mens = Nothing
Set Config = Nothing
  'DoCmd.OpenForm "frmFinalizar"
   MsgBox "Mensagem enviada com sucesso!", vbInformation, "Encontros"
   
erromail:
If Err.Number = 13 Then
    Resume Next
ElseIf Err.Number = -2147220979 Then
    DoCmd.Close acForm, "frmProgresso"
    MsgBox "Você inseriu um endereço de email inválido ou inexistente." & vbCrLf & "Verifique o email e tente novamente.", vbOKOnly + vbCritical, "Email inválido"
    'DoCmd.Close acForm, "frmFinalizar"
    Me!contatos.SetFocus
Else
    Resume Next
End If

End Sub
Deus é bom e fiel!

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 13 Fev 2018, 15:22

Boa tarde!
Alguma novidade com relação a esta questão?
Deus é bom e fiel!

Avatar do usuário
Avelino Sampaio
Mensagens: 2231
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Enviar aviso por email

Mensagempor Avelino Sampaio » 14 Fev 2018, 06:53

José

acrescente a caixa de mensagem na posição indicada e escreva aqui o que exatamente ela exibe na primeira passagem.

Código:
Sub EnviarEmail(varDestino As Variant, Optional varAnexo)
On Error GoTo erromail
...
.Subject = Me!titulo
.HTMLBody = Me!mensagem
.to = Me!destino
msgbox varAnexo
.AddAttachment varAnexo

'Dim L As Long
'If Me!lstAnexos.ListCount > 0 Then
'For L = 0 To Me.lstAnexos.ListCount - 1
'.AddAttachment Me!lstAnexos.Column(0, L)
'Next L
'
'Else
'End If
.Send
End With
...
End Sub


Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 14 Fev 2018, 12:14

Bom dia!
Avelino, fizemos conforme procedimento, a caixa de mensagem não foi exibida, ou seja, não foi registrada nenhuma alteração.
Deus é bom e fiel!

Avatar do usuário
Avelino Sampaio
Mensagens: 2231
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Enviar aviso por email

Mensagempor Avelino Sampaio » 14 Fev 2018, 16:04

jose

significa então que não está conseguindo extrair o endereço do anexo da listbox. Acrescente a caixa de mensagem na posição indicada em vermelho e veja se exibe algum endereço

Código:
...
k = Split(Left(LCase(Me!destino), Len(Me!destino) - 1), ";")
For j = 0 To UBound(k)
msgbox Me!lstAnexos.Column(0, k(j))
Call EnviarEmail(k(j), Me!lstAnexos.Column(0, k(j)))
Next
...


Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 14 Fev 2018, 18:41

Mensagem:
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
Deus é bom e fiel!

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 17 Fev 2018, 11:50

Bom dia!
Amigo Avelino, Alguma novidade?
Deus é bom e fiel!

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 20 Fev 2018, 17:26

Avelino,
Pode encerrar o tópico!
Deus é bom e fiel!

Avatar do usuário
Avelino Sampaio
Mensagens: 2231
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Enviar aviso por email

Mensagempor Avelino Sampaio » 20 Fev 2018, 18:24

Mas josé, vc conseguiu resolver ou desistiu ?

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
José Waldick
Mensagens: 307
Registrado em: 08 Mar 2016, 19:39

Re: Enviar aviso por email

Mensagempor José Waldick » 20 Fev 2018, 21:20

Amigo,
Fui para um lado e para outro, não estou conseguindo encontrar a solução.
Para não deixar o tópico em aberto, resolvi solicitar o fechamento.
Deus é bom e fiel!

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Formulários”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 6 visitantes