Descobrindo quando um e-mail foi aberto com ASP
Quando você envia uma mala direta, é possível usar de um truque com ASP para saber quais destinatários abriram seus e-mails e quantas vezes o fizeram. O truque consiste em enviar os e-mails no formato HTML com um link para um arquivo de imagem que é buscado no seu site para ser exibido todas as vezes que alguém abrir o e-mail. Este link porém não é direto para uma imagem, mas para um ASP que retorna a imagem. No link, você pode enviar uma informação que identifica o destinatário. Ao ser acessado, o código em ASP recebe o identificador do destinatário e pode, antes de retornar a imagem, atualizar um banco de dados onde você mantém os registros dos destinatários que abriram os e-mails, quantas vezes abriram, data e hora da primeira abertura, data e hora da última abertura, etc.
O link no arquivo html poderia ser assim:
<img border="0" src="http://www.codelines.com/silentidea/imagem.asp?Id=1000">
O código em ASP que retornaria a imagem poderia ser como segue abaixo:
Dim strFilePath, objStream
Dim cn, strConn, strSql
Dim Id, recaffec
On Error Resume Next
Set cn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\home\meu_site\dados\maladireta.mdb;"
cn.Open strConn
'Coleta o Id do destinatário
Id = Request.QueryString("Id")
'Aqui, atualiza o banco de dados com as informações do destinatário
strsql = "UPDATE Emails SET vezes_abriu_email = vezes_abriu_email + 1 WHERE ID = " & Id
cn.Execute strsql, recaffec
cn.close
set cn = nothing
'Agora, retorna a
imagem que é exibida no e-mail supondo que ela esteja no
'mesmo diretório
deste arquivo ASP
Response.ContentType = "image/gif"
strFilePath = Server.MapPath("imagem.gif")
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing