<% '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# ' Loja Exemplo Locaweb ' Versão: 6.4 ' Data: 12/09/06 ' Arquivo: funcoes_mail.asp ' Versão do arquivo: 0.0 ' Data da ultima atualização: 07/08/07 ' '----------------------------------------------------------------------------- ' Licença Código Livre: http://comercio.locaweb.com.br/gpl/gpl.txt '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# '########################################################################################################## 'SUB Envia_Email_recibo ' - Este arquivo inclui uma subrotina que envia uma mensagem de confirmacao para o cliente de sua compra, bem como o link do boleto, caso ele deseje imprimi-lo novamente '########################################################################################################## Sub Envia_Email_recibo(Conexao, EmailCliente, URLBoleto, LinhaDigitavel) Call abre_xmlpedido(session("id_transacao"), objXML, objRoot) Set raiz_dados_pedido = objRoot.selectSingleNode("dados_pedido[@id_transacao="&session("id_transacao")&"]") 'INTRODUCAO IP = raiz_dados_pedido.getAttribute("ip_usado") tipoEntrega = raiz_dados_pedido.getAttribute("opcao_frete") meioPag = raiz_dados_pedido.getAttribute("forma_pagamento") 'DESCRIMINACAO subtotal = 0 Set states = objXML.getElementsByTagName("dados_pedido[@id_transacao="&session("id_transacao")&"]/produto") n_states = states.length for i = 0 to (n_states - 1) Set pagto = states.item(i) nome_produto = pagto.getAttribute("nome_produto") quantidade_produto = pagto.getAttribute("quantidade_produto") valor_unitario = pagto.getAttribute("preco_unitario") cor = Pega_DadoBanco("Cores","nome_cor","codigo_cor",pagto.getAttribute("codigo_cor")) tamanho = pega_Tamanho(pagto.getAttribute("codigo_tamanho")) varDESCRICAO = varDESCRICAO & nome_produto & Chr(13) & Chr(10) If cor <> "" Then varDESCRICAO = varDESCRICAO & Application("MailTxtReciboCor") & cor & Chr(13) & Chr(10) End if If tamanho <> "" Then varDESCRICAO = varDESCRICAO & Application("MailTxtReciboTam") & tamanho & Chr(13) & Chr(10) End if varDESCRICAO = varDESCRICAO & Application("MailTxtReciboQtd") & quantidade_produto & Chr(13) & Chr(10) varDESCRICAO = varDESCRICAO & Application("MailTxtReciboVlrUnit") & valor_unitario & Chr(13) & Chr(10) & Chr(13) & Chr(10) Set pagto = Nothing next Set states = Nothing 'ADICIONAL If Session("forma_pagamento") = "Boleto" or Session("forma_pagamento") = "ITAU" Then varADICIONAL = varADICIONAL & Application("MailTxtReciboBoletoLink") & URLBoleto & Chr(13) & Chr(10) If LinhaDigitavel <> "" AND LinhaDigitavel <> "0" Then varADICIONAL = varADICIONAL & Chr(13) & Chr(10) varADICIONAL = varADICIONAL & Application("MailTxtReciboBoletoDigital") & Chr(13) & LinhaDigitavel & Chr(13) & Chr(10) & Chr(13) & Chr(10) End If End If 'DADOS PARA COBRANÇA If Session("razaosocial_cobranca") <> "" And Session("cnpj_cobranca") <> "" Then varCOBRANCA = varCOBRANCA & Application("MailTxtReciboRazaoSocial") & Session("razaosocial_cobranca") & Chr(13) & Chr(10) varCOBRANCA = varCOBRANCA & Application("MailTxtReciboCNPJ") & Session("cnpj_cobranca") & Chr(13) & Chr(10) End If varCOBRANCA = varCOBRANCA & Application("MailTxtReciboNome") & Session("nome_cobranca") & Chr(13) & Chr(10) If Session("cpf_cobranca") <> "" Then varCOBRANCA = varCOBRANCA & Application("MailTxtReciboCPF") & Session("cpf_cobranca") & Chr(13) & Chr(10) End if varCOBRANCA = varCOBRANCA & Application("MailTxtReciboTel") & "(" & Session("ddd_cobranca") & ") " & Session("telefone_cobranca") & Chr(13) & Chr(10) varCOBRANCA = varCOBRANCA & Session("logradouro_cobranca") & ", " & Session("numero_cobranca") If Session("complemento_cobranca") <> "" Then varCOBRANCA = varCOBRANCA & " - " & Session("complemento_cobranca") & Chr(13) & Chr(10) Else varCOBRANCA = varCOBRANCA & Chr(13) & Chr(10) End If varCOBRANCA = varCOBRANCA & Session("bairro_cobranca") & " - " & Session("cep_cobranca") & Chr(13) & Chr(10) varCOBRANCA = varCOBRANCA & Session("cidade_cobranca") & " - " & Session("estado_cobranca") 'DADOS PARA ENTREGA If Session("cep_entrega") <> "" Then cod_coluna = "_entrega" Else cod_coluna = "_cobranca" End If varENTREGA = varENTREGA & Application("MailTxtReciboNome") & Session("nome" & cod_coluna) & Chr(13) & Chr(10) If Session("cpf" & cod_coluna) <> "" Then varENTREGA = varENTREGA & Application("MailTxtReciboCPF") & Session("cpf" & cod_coluna) & Chr(13) & Chr(10) End If varENTREGA = varENTREGA & Application("MailTxtReciboTel") & "(" & Session("ddd" & cod_coluna) & ") " & Session("telefone" & cod_coluna) & Chr(13) & Chr(10) varENTREGA = varENTREGA & Session("logradouro" & cod_coluna) & ", " & Session("numero" & cod_coluna) If Session("complemento" & cod_coluna) <> "" Then varENTREGA = varENTREGA & " - " & Session("complemento" & cod_coluna) & Chr(13) & Chr(10) Else varENTREGA = varENTREGA & Chr(13) & Chr(10) End If varENTREGA = varENTREGA & Session("bairro" & cod_coluna) & " - " & Session("cep" & cod_coluna) & Chr(13) & Chr(10) varENTREGA = varENTREGA & Session("cidade" & cod_coluna) & " - " & Session("estado" & cod_coluna) 'PARAMETROS DO CORPO DO EMAIL arrayInfo = "<\$nome\$>#LW#"& Session("nome_cobranca") &"|LW|" arrayInfo = arrayInfo & "<\$Nomeloja\$>#LW#"& Application("nomeloja") &"|LW|" arrayInfo = arrayInfo & "<\$data\$>#LW#"& Date &"|LW|" arrayInfo = arrayInfo & "<\$horas\$>#LW#"& Time &"|LW|" arrayInfo = arrayInfo & "<\$numpedido\$>#LW#"& Session("codigo_pedido") &"|LW|" arrayInfo = arrayInfo & "<\$DESCRICAO\$>#LW#"& varDESCRICAO &"|LW|" arrayInfo = arrayInfo & "<\$subtotal\$>#LW#"& FormatCurrency(raiz_dados_pedido.getAttribute("valor_subtotal")) &"|LW|" arrayInfo = arrayInfo & "<\$taxaenvio\$>#LW#"& FormatCurrency(raiz_dados_pedido.getAttribute("valor_frete")) &"|LW|" arrayInfo = arrayInfo & "<\$total\$>#LW#"& FormatCurrency(raiz_dados_pedido.getAttribute("valor_total")) &"|LW|" arrayInfo = arrayInfo & "<\$ADICIONAL\$>#LW#"& varADICIONAL &"|LW|" arrayInfo = arrayInfo & "<\$COBRANCA\$>#LW#"& varCOBRANCA &"|LW|" arrayInfo = arrayInfo & "<\$IP\$>#LW#"& IP &"|LW|" arrayInfo = arrayInfo & "<\$tipoEntrega\$>#LW#"& tipoEntrega &"|LW|" arrayInfo = arrayInfo & "<\$metpag\$>#LW#"& meioPag &"|LW|" arrayInfo = arrayInfo & "<\$ENTREGA\$>#LW#"& varENTREGA Set raiz_dados_pedido = Nothing titulo = Replace(Application("MailTxtTitRecibo"), "varNomeloja", Application("nomeloja")) & Session("codigo_pedido") tipoMail = "mail_recibo" ' Prepara o conteudo do e-mail corpoMail = prepara_texto_mail(tipoMail, varLang, arrayInfo) ' Ativa copia do e-mail ao lojista cc = 1 ' Verifica se o e-mail será enviado em formato texto ou html If Application("FormatoMailLoja") = "texto" Then Call funcao_mail(titulo, EmailCliente, corpoMail, cc) Else corpoMail = Replace(corpoMail, Chr(13), "
") Call funcao_mail_html(titulo, EmailCliente, corpoMail, cc) End If End Sub '######################################################################################################## '--> FIM SUB Envia_Email_recibo '######################################################################################################## '======================================================================================================== '######################################################################################################## 'FUNCTION Envia_mail_confirmacao ' - Envia e-mail de confirmação de cadastro para recebimento de newsletter '######################################################################################################## Function Envia_mail_confirmacao(e_mail,nome,idunico) 'Se a loja estiver em ambiente seguro If Session("URLloja") = true Then URLloja = Session("URLloja") 'Se a loja estiver fora do ambiente seguro. Else URLloja = Application("URLLoja") End If URLconfirmar = URLloja & "/insere_delete_news.asp?idunico=" & idunico & "&email=" & e_mail & "&bt_newsletter=Confirmo&origem=Notif" URLremover = URLloja & "/insere_delete_news.asp?idunico=" & idunico & "&email=" & e_mail & "&bt_newsletter=Excluir&origem=Notif" titulo = Application("MailTxtTitConfirmacao") & Application("nomeloja") arrayInfo = "<\$nome\$>#LW#"& nome &"|LW|<\$email\$>#LW#" & e_mail &"|LW|<\$URLconfirmar\$>#LW#" & URLconfirmar &"|LW|<\$URLremover\$>#LW#" & URLremover &"|LW|<\$Nomeloja\$>#LW#" & Application("nomeloja") tipoMail = "mail_confirmacao" ' Prepara o conteudo do e-mail corpoMail = prepara_texto_mail(tipoMail, varLang, arrayInfo) ' Verifica se o e-mail será enviado em formato texto ou html If Application("FormatoMailLoja") = "texto" Then Call funcao_mail(titulo, e_mail, corpoMail, 0) Else corpoMail = Replace(corpoMail, Chr(13), "
") Call funcao_mail_html(titulo, e_mail, corpoMail, 0) End If End Function '######################################################################################################## '--> FIM SUB Envia_mail_confirmacao '######################################################################################################## '======================================================================================================== '######################################################################################################## 'FUNCTION Envia_mail_senha ' - envia senha esquecida cliente loja ou usuario da admnistração da loja '######################################################################################################## Function Envia_mail_senha(e_mail,perfil_usuario,adicional) Set RS_Usuario = Server.CreateObject("ADODB.Recordset") if perfil_usuario = "loja" Then RS_Usuario.Open "SELECT usuarios.chave FROM usuarios WHERE user_id = '" & e_mail & "'", Conexao Elseif perfil_usuario = "admin" Then RS_Usuario.Open "SELECT usuarios_admin.chave_admin, usuarios_admin.email_usuario, usuarios_admin.status FROM usuarios_admin WHERE user_id_admin = '" & e_mail & "'", Conexao e_mail = RS_Usuario("email_usuario") End if If Not RS_Usuario.EOF Then If perfil_usuario = "loja" Then senha = RS_Usuario("chave") tipoMail = "mail_reenviosenha_loja" Elseif perfil_usuario = "admin" Then senha = Encriptor(RS_Usuario("chave_admin"),"decriptar") tipoMail = "mail_reenviosenha_admin" End if Envia_mail_senha = 1 Else Envia_mail_senha = 0 RS_Usuario.Close Conexao.Close Set RS_Usuario = Nothing Set Conexao = Nothing Exit Function End If titulo = Application("MailTxtTitReenvioSenha") & Application("nomeloja") arrayInfo = "<\$Nomeloja\$>#LW#"& Application("nomeloja") &"|LW|<\$Senha\$>#LW#" & senha ' Prepara o conteudo do e-mail corpoMail = prepara_texto_mail(tipoMail, varLang, arrayInfo) If adicional <> "" Then e_mail = adicional End if ' Verifica se o e-mail será enviado em formato texto ou html If Application("FormatoMailLoja") = "texto" Then Call funcao_mail(titulo, e_mail, corpoMail, 0) Else corpoMail = Replace(corpoMail, Chr(13), "
") Call funcao_mail_html(titulo, e_mail, corpoMail, 0) End If RS_Usuario.Close Set RS_Usuario = Nothing End Function '######################################################################################################## '--> FIM FUNCTION Envia_mail_senha '######################################################################################################## '======================================================================================================== '######################################################################################################## 'SUB Envia_Email_remessa ' - Envia notificacao ao cliente de que pacote foi colocado no correio '######################################################################################################## Sub Envia_Email_remessa(RS_Pedido, num_remessa, codigo_pedido) If RS_Pedido("email_entrega") <> "" Then Email_cliente = RS_Pedido("email_entrega") Else Email_cliente = RS_Pedido("user_id") End If Titulo = Replace(Application("MailTxtTitRemessa"), "varNomeloja", Application("nomeloja")) arrayInfo = "<\$codigo_pedido\$>#LW#"& codigo_pedido &"|LW|<\$Nomeloja\$>#LW#"& Application("nomeloja") &"|LW|<\$num_remessa\$>#LW#" & num_remessa tipoMail = "mail_remessa" cc = 1 'envia notificação pra loja inclusive. ( só pra checar ). idiomaPedido = RS_Pedidos("sigla_idioma") If idiomaPedido = "en_UK" Then Titulo = "Your order in "& Application("nomeloja") &" is the way !" ElseIf idiomaPedido = "en_US" Then Titulo = "Your order in "& Application("nomeloja") &" is the way !" Else Titulo = "Seu pedido na "& Application("nomeloja") &" está a caminho !" End If ' Prepara o conteudo do e-mail corpoMail = prepara_texto_mail(tipoMail, idiomaPedido, arrayInfo) ' Verifica se o e-mail será enviado em formato texto ou html If Application("FormatoMailLoja") = "texto" Then Call funcao_mail(Titulo, Email_cliente, corpoMail, cc) Else corpoMail = Replace(corpoMail, Chr(13), "
") Call funcao_mail_html(Titulo, Email_cliente, corpoMail, cc) End If End Sub '######################################################################################################## '--> SUB Envia_Email_remessa '######################################################################################################## '======================================================================================================== '######################################################################################################## 'FUNCTION funcao_mail ' - função para disparo de e-mail em formato texto '######################################################################################################## Function funcao_mail(Titulo, Email_cliente, message, cc) Set Mailer = Server.CreateObject("SoftArtisans.SMTPMail") Mailer.FromName = Application("NomeLoja") Mailer.FromAddress = Application("MailLoja") Mailer.RemoteHost = Application("SMTPLoja") Mailer.AddRecipient "", Email_cliente ' Define o charset do e-mail para 'ISO 8859-1' Mailer.CharSet = 2 ' copia para a loja If (cc = 1) Then 'e-mail do destinatário(loja) Mailer.AddBCC ""&Application("NomeLoja")&"", ""&Application("MailLoja")&"" End If '--- CharSet for Arabic (Windows) Mailer.CustomCharSet = windows-1251 Mailer.Subject = Titulo Mailer.BodyText = desencode(message) Mailer.SendMail If Err = 0 Then funcao_mail = 0 Else funcao_mail = 1 End if Set Mailer = Nothing End Function Function desencode(frase) For i= 1 to 255 desencode=Replace(frase,Server.URLEncode(chr(i)),chr(i)) frase=desencode Next End Function '######################################################################################################## '--> FIM FUNCTION funcao_mail '######################################################################################################## '======================================================================================================== '######################################################################################################## 'FUNCTION funcao_mail_html ' - função para disparo de e-mail em formato HTML '######################################################################################################## Function funcao_mail_html(Titulo, Email_cliente, message, cc) Set Mailer = Server.CreateObject("SoftArtisans.SMTPMail") Mailer.FromName = Application("NomeLoja") Mailer.FromAddress = Application("MailLoja") Mailer.RemoteHost = Application("SMTPLoja") Mailer.AddRecipient "", Email_cliente ' Define o charset do e-mail para 'ISO 8859-1' Mailer.CharSet = 2 ' copia para a loja If (cc = 1) Then 'e-mail do destinatário(loja) Mailer.AddBCC ""&Application("NomeLoja")&"", ""&Application("MailLoja")&"" End If Mailer.Subject = Titulo Mailer.HtmlText = message Mailer.SendMail If Err = 0 Then funcao_mail_html = 0 Else funcao_mail_html = 1 End if Set Mailer = Nothing End Function '######################################################################################################## '--> FIM FUNCTION funcao_mail_html '######################################################################################################## '======================================================================================================== '######################################################################################################## 'FUNCTION prepara_texto_mail ' - Prepara o corpo do texto dos e-mails antes do envio '######################################################################################################## Function prepara_texto_mail(tipoMail, varLang, arrayInfo) If varLang = "" Then varLang = Application("IdiomaDefault") End If Set objArquivo = CreateObject("Scripting.FileSystemObject") ' Localiza o template do email sArq = Application("DiretorioConfig") & "templates\" & varLang & "\" & tipoMail & ".txt" ' Lê o template do email If objArquivo.FileExists(sArq) Then Set objConteudoArquivo = objArquivo.OpenTextFile(sArq,1,True) sMail = objConteudoArquivo.ReadAll objConteudoArquivo.Close Set objConteudoArquivo = Nothing End If ' Formata o template do email If (sMail <> "" AND NOT IsNull(sTexto)) Then Set objRegExpr = New RegExp objRegExpr.Global = True objRegExpr.IgnoreCase = True If instr(arrayInfo,"|LW|") <> 0 Then sInfo = split(arrayInfo,"|LW|") For i=0 to ubound(sInfo) vInfo = split(sInfo(i),"#LW#") objRegExpr.Pattern = ""& vInfo(0) &"" sMail = objRegExpr.Replace(sMail, ""& vInfo(1) &"") Next Else vInfo = split(arrayInfo,"#LW#") objRegExpr.Pattern = ""& vInfo(0) &"" sMail = objRegExpr.Replace(sMail, ""& vInfo(1) &"") End If ' Retorna o template do email formatado prepara_texto_mail = sMail End If Set objArquivo = Nothing End Function '######################################################################################################## '--> FIM FUNCTION prepara_texto_mail '######################################################################################################## %>