MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Dúvida com rotina de envio de emails

    andrelecio
    andrelecio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 02/03/2012

    [Resolvido]Dúvida com rotina de envio de emails Empty Dúvida com rotina de envio de emails

    Mensagem  andrelecio 5/3/2012, 01:13

    Saudações,

    Depois de conseguir montar a rotina com a ajuda do Criquio, me vejo empatado de novo e novamente venho solicitar ajuda, já quebrei a cabeça e não consigo solucionar

    O problema:

    Com a rotina abaixo, são filtrados os emails de uma determinada condição (ex: clientes com status de inadimplente e um pdf padrão é enviado, entretanto no corpo da mensagem coloquei alguns dados que refletem o registro que teoricamente seria do cliente em questão, apesar da rotina funcionar e enviar os emails corretamente, no corpo da mensagem os dados seguem sempre da primeira mensagem (do registro de onde o comando foi disparado)

    exemplo: não verificamo seu pagamento referente ao pedido " & Me![numero] & " realizado em " & Me![data] & "

    o resultado sempre é igual para todos os emails

    Haveria uma maneira do resultado refletir os dados do registro correto?

    o código:

    Código:
    On Error GoTo Erro
    Dim objMail As New jmail.Message, vSMTP As String
    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("SELECT email FROM vendas WHERE status='" & Me.status & "'")

    vSMTP = "mail.dominio.com" 'Servidor SMTP
    Do While Not rs.EOF
    objMail.From = "email@dominio.com"
    objMail.FromName = "Fulano de Tal"
    objMail.AddRecipient rs!email
    objMail.MailServerUserName = "login"
    objMail.MailServerPassWord = "senha"
    objMail.Subject = "Seu pedido ainda está em aberto"
    objMail.Body = "Prezado(a) Cliente," & vbCrLf & _
    "Até esta data não verificamo seu pagamento referente ao pedido " & Me![numero] & " realizado em " & Me![data] & " na Empresa tal. Em anexo instruções em pdf."
    rs.MoveNext
    Loop
    objMail.AddAttachment "C:\instrucoes.pdf", True


    If objMail.Send(vSMTP) Then
    MsgBox "E-mail enviado com sucesso!", vbInformation + vbOKOnly, "E-mail enviado"
    Else
    MsgBox "Ocorreu um erro ao enviar o e-mail." & vbCrLf & objMail.Log, vbCritical + vbOKOnly, "Erro"
    End If

    rs.Close
    Set rs = Nothing
    Set objMail = Nothing

    Sair:
    Exit Sub
    Erro:
    MsgBox Err.Description & vbCrLf & objMail.Log, vbCritical + vbOKOnly, "Erro " & Err.Number & " no envio do e-mail"
    Resume Sair

    Agradeço qualquer ajuda possível
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Dúvida com rotina de envio de emails Empty Re: [Resolvido]Dúvida com rotina de envio de emails

    Mensagem  criquio 5/3/2012, 12:06

    Você está passando como parâmetros dados de um formulário. Por isso todos os emails irão para a pessoa que estiver no formulário. Talvez seja o caso de se usar os campos do Recordset filtrados na variável rs.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    andrelecio
    andrelecio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 02/03/2012

    [Resolvido]Dúvida com rotina de envio de emails Empty Re: [Resolvido]Dúvida com rotina de envio de emails

    Mensagem  andrelecio 5/3/2012, 15:25

    Os emails são enviados corretamente, ou seja, somente os clientes da categoria "inadimplente" recebem se este é o status do registro ativo, fiz então um pdf genérico, especifiquei o caminho e pronto, como dizem os americanos "work like a charm"

    O que eu não sei se é possível é personalizar este pdf genérico com o pedido de cada cliente por exemplo, tentei uma consulta diretamente no formulário mas não funcionou, sempre o pdf do registro ativo é enviado, tens alguma sugestão?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Dúvida com rotina de envio de emails Empty Re: [Resolvido]Dúvida com rotina de envio de emails

    Mensagem  criquio 5/3/2012, 16:33

    Ainda não entendi bem que parâmetro precisa. Se você passa um campo do formulário como parâmetro, sempre será usado esse campo. Para mudar de parâmetro, precisa ver exatamente o que precisa para poder alterar a função.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Dúvida com rotina de envio de emails Empty Re: [Resolvido]Dúvida com rotina de envio de emails

    Mensagem  Convidad 24/3/2012, 04:05


    ... Sem retorno do usuário ...
    avatar
    samtastico
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 05/09/2010

    [Resolvido]Dúvida com rotina de envio de emails Empty Solução by Sam Oliveira

    Mensagem  samtastico 24/3/2012, 18:52

    Amigo,
    Segue o código com o envio de e-mail com anexo no Access
    Cole o código abaixo em um Módulo

    '----------------------------------------------------------------------------------------------
    Public Function EmailEnviar(Para, Assunto, Corpo, Anexo, MostrarMensagem)
    On Error GoTo TratarErro
    Dim OutApp As Object
    Dim OutMail As Object

    DoCmd.Hourglass True

    DoEvents
    SysCmd acSysCmdSetStatus, "Preparando o e-mail com o Outlook..."

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
    With OutMail
    '.SentOnBehalfOfName = ""
    .To = LCase(Para)
    .Subject = Assunto
    .HTMLBody = Replace(Corpo, vbCrLf, "
    ")
    '.Body = Corpo
    For a = 0 To UBound(Split(Anexo, ";"))
    .Attachments.Add Split(Anexo, ";")(a)
    Next a
    SysCmd acSysCmdSetStatus, "Transmitindo o e-mail..."
    .Send
    If MostrarMensagem = True Then MsgBox "O e-mail foi enviado com sucesso para:" & Chr(13) & LCase(Para), vbExclamation, " Confirmação"
    End With

    SysCmd acSysCmdClearStatus

    DoCmd.Hourglass False

    Set OutMail = Nothing: Set OutApp = Nothing

    SairFunction:
    Exit Function

    TratarErro:
    DoCmd.Hourglass False: SysCmd acSysCmdClearStatus
    Set OutMail = Nothing: Set OutApp = Nothing
    MsgBox "Ocorreu um erro ao processar o comando:" & Chr(13) & Err.Description, vbCritical, " Erro " & Err.Number
    Resume SairFunction
    End Function
    '----------------------------------------------------------------------------------------------

    Para enviar o e-mail, basta usar o comando abaixo em qualquer botão


    MinhaStr = EmailEnviar(Para, Assunto, Corpo, Anexo, MostrarMensagem)

    Para = "e-mail do destinatário"
    Assunto = "Texto do Assunto"
    Corpo = "Corpo do e-mail
    Anexo = "Caminho completo do arquivo"
    MostrarMensagem = True 'Mostrar a mensagem de confirmação do envio do e-mail
    MostrarMensagem = True 'Não exibe a mensagem de confirmação do envio do e-mail

    Espero ter ajudado,

    avatar
    Convidad
    Convidado


    [Resolvido]Dúvida com rotina de envio de emails Empty Re: [Resolvido]Dúvida com rotina de envio de emails

    Mensagem  Convidad 12/4/2012, 02:43


    Considerado como resolvido.

    Conteúdo patrocinado


    [Resolvido]Dúvida com rotina de envio de emails Empty Re: [Resolvido]Dúvida com rotina de envio de emails

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 03:32