segunda-feira, 14 de outubro de 2024

ALTERACOES SENDO FEITAS

ALTERACOES SENDO FEITAS






















































links uteis windev

links uteis windev


Uteis


Css


Json


Nfe


Windev


ler sobre isso email 

=== ler sobre isso email 

[23:46, 25/09/2024] Adriano Boller: Melhorias de Send mail na v 29
[23:46, 25/09/2024] Adriano Boller: Recursos mais modernos disponíveis na versão 29 do WinDev. Isso permitirá que a procedure seja mais flexível e reutilizável. 

### Procedure com passagem de parâmetros e recursos da versão 29:

Na versão 29, temos melhorias na segurança e na codificação de mensagens. Vamos passar os seguintes parâmetros para a procedure:
- *SMTP server*: endereço do servidor SMTP.
- *Port*: porta usada para o envio (587 para TLS).
- *Sender email*: o e-mail do remetente.
- *Password*: senha do e-mail do remetente.
- *Recipient email*: e-mail do destinatário.
- *Subject*: assunto do e-mail.
- *Message*: corpo da mensagem.

Aqui está a procedure atualizada:

wlanguage
//##############################
// Procedure para enviar e-mail com passagem de parâmetros e recursos da versão 29
PROCEDURE SendEmailWithParams(smtpServer is string, smtpPort is int, senderEmail is string, password is string, recipientEmail is string, subject is string, messageText is string)

// Declaração de variáveis para a configuração do SMTP
smtpSession is EmailSMTPSession
smtpSession.ServerAddress = smtpServer      // Endereço do servidor SMTP
smtpSession.Name = senderEmail             // E-mail do remetente
smtpSession.Password = password            // Senha do e-mail
smtpSession.Port = smtpPort                // Porta SMTP (padrão 587 para TLS)
smtpSession.Option = emailOptionSecuredTLS // Usar TLS para criptografia (mais seguro)

// Iniciar a sessão SMTP
IF NOT EmailStartSMTPSession(smtpSession) THEN
    Error("Erro ao iniciar a sessão SMTP: ", ErrorInfo(errMessage))
    RETURN
END

// Configurando a mensagem de e-mail
emailMessage is Email
emailMessage.Sender = senderEmail             // Endereço de quem envia
emailMessage.Recipient[1] = recipientEmail    // Endereço do destinatário
emailMessage.Subject = subject                // Assunto do e-mail
emailMessage.Message = messageText            // Corpo da mensagem

// Exemplo de anexo usando recurso da versão 29
// Anexar arquivos usando um array, disponível na versão 29 para maior flexibilidade
attachments is array of string
attachments = ["C:\caminho\para\arquivo.pdf", "C:\caminho\para\outro_arquivo.txt"]

FOR EACH file OF attachments
    emailMessage.Attach(file)
END

// Enviar o e-mail
IF NOT EmailSendMessage(smtpSession, emailMessage) THEN
    Error("Erro ao enviar o e-mail: ", ErrorInfo(errMessage))
    RETURN
END

// Fechar a sessão SMTP
EmailCloseSession(smtpSession)

Info("E-mail enviado com sucesso!")
//##############################


### Explicação do código atualizado:

1. *Passagem de parâmetros*:
   - *smtpServer*: O endereço do servidor SMTP é passado como parâmetro (exemplo: "smtp.gmail.com").
   - *smtpPort*: A porta usada para a conexão SMTP (geralmente 587 para TLS).
   - *senderEmail* e *password*: O e-mail do remetente e a senha também são passados como parâmetros, permitindo flexibilidade.
   - *recipientEmail*: O e-mail do destinatário é passado como parâmetro.
   - *subject* e *messageText*: O assunto e o corpo do e-mail são personalizados através da passagem de parâmetros.

2. *Recursos da versão 29*:
   - *Array para anexos: Um recurso interessante na versão 29 é a possibilidade de usar um **array* para anexos, tornando o código mais flexível e organizado.
   - *Melhorias de segurança: O uso de **TLS* para criptografia é mantido com a opção emailOptionSecuredTLS, garantindo segurança durante o envio.

3. *Validação de erros aprimorada*:
   - *ErrorInfo(errMessage)*: Utilizamos essa função para obter informações detalhadas sobre erros, proporcionando uma melhor experiência de depuração.

### Como usar:

Você pode chamar a procedure *SendEmailWithParams* passando os parâmetros necessários:

wlanguage
SendEmailWithParams("smtp.gmail.com", 587, "seuemail@exemplo.com", "sua_senha", "destinatario@exemplo.com", "Assunto do E-mail", "Aqui está o corpo da mensagem.")


### Notas adicionais:
- *Segurança*: No caso de servidores de e-mail como Gmail, certifique-se de ativar o suporte para "apps menos seguros" ou configurar um token de autenticação específico, dependendo do provedor de e-mail.
- *Anexos*: No exemplo, mostramos como anexar múltiplos arquivos usando um array. Se quiser enviar sem anexos, basta não definir o array attachments.

Essa abordagem torna o envio de e-mail flexível e seguro, utilizando os recursos modernos da versão 29 do WinDev.

Se tiver uma sugestão melhor mande aqui

Teste

Teste
teste