Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmentos - TOTVS Backoffice (Linha Protheus) - ADVPL - Enviar email como compromisso de agenda via TMailMessage

time.pngTempo aproximado para leitura: 00:03:00 min

Dúvida

Gostaria de saber se é possível enviar um email como um compromisso pelo Protheus usando o TMailMessage.

Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.80

Solução
Para atender essa necessidade é necessário enviar o arquivo do tipo *.ICS em anexo, e  adicionar o cabeçalho via métodos AddAttHTagAddCustomHeader.
A seguir exemplo de utilização:

#Include 'Protheus.ch'

User Function tEnv()

Local cUser := "", cPass := ""
Local nTimeout := 0
Local xRet
Local oServer, oMessage


cUser := "email@outlook.com" //define the e-mail account username
cPass := "" //define the e-mail account password
nTimeout := 60 // define the timout to 60 seconds

oServer := TMailManager():New()

oServer:SetUseSSL( .T. )
oServer:SetUseTLS( .T. )

oServer:Init( 'pop-mail.outlook.com', 'smtp-mail.outlook.com' , cUser, cPass, 995, 587 )

oServer:SetSmtpTimeOut( 120 )

//Verifica conexão SMTP
conout( 'Conectando do SMTP' )
nErro := oServer:SmtpConnect()
If nErro <> 0
conout( "ERROR:" + oServer:GetErrorString( nErro ) )
oServer:SMTPDisconnect()
return .F.
Endif

//Verifica autenticação
nErro := oServer:SmtpAuth( cUser ,cPass )
If nErro <> 0
conout( "ERROR:" + oServer:GetErrorString( nErro ) )
oServer:SMTPDisconnect()
return .F.
Endif

oMessage := TMailMessage():New()
oMessage:Clear()
oMessage:cFrom := "email@outlook.com"
oMessage:cTo := "email@outlook.com"
oMessage:cCc := ""
oMessage:cSubject := "teste"
oMessage:cBody := ""

oMessage:AddCustomHeader( "Content-Type", "text/calendar" )

If oMessage:AttachFile( "teste.ICS" ) < 0
Conout( "Erro ao atachar o arquivo" )
Return .F.
Else

//adiciona uma tag informando que é um attach e o nome do arq
oMessage:AddAtthTag('Content-Disposition: attachment; filename=teste.ICS')
EndIf

//Envia e-mail
nErro := oMessage:Send( oServer )

//Verifica se o e-mail foi enviado
if nErro <> 0
conout( "ERROR:" + oServer:GetErrorString( nErro ) )
oServer:SMTPDisconnect()
return .F.
Endif

conout( 'Desconectando do SMTP' )
oServer:SMTPDisconnect()

return

 

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _