PHP: Run sgriobt loading ìomhaigh a dhaingneachadh ann an post-d

Tha seo a 'tip e feumail do dhuine sam bith a tha ag iarraidh fios a bhith againn ma tha a' phost-dealain a chur thu a leughadh. sa chùis seo, cuir a-steach an dealbh anns an corp an teachdaireachd post-d, nuair a dh'fhosgail, dùisgidh sgriobt iomallach air an fhrithealaiche.

taisbeanadh

Alt seo ga chleachdadh gu bitheanta ann am post-d margaideachd, mar sin an neach a chuir a 'cur na ceudan no mìltean de post-d gu luchd-faotainn do puist ag amas a ruighinn luchd-amais, agus iongnaidh beachd (a 'tilleadh) iomairt, ann am facail eile, ma tha an neach a tha air a leughadh no nach eil an-thogail ann an post-d sanasachd.

mar a tha e ag obair?
Tha reusanachadh tha sìmplidh, thu dìreach a chur ann am post-d corp (clàr na làraich) an DEIT HTML Tag, leis an SRC buadha tomadh, Cha dìreach ri ìomhaigh mar a tha e mar as trice air a dhèanamh, ach airson cleachdadh sgriobt a chur air iomallach fhrithealaiche, far an urrainn dhut a 'coileanadh cuid agus gnàthach, an uair sin tha, render an ìomhaigh (no nach eil). iom-fhillte? dad, fhaicinn mar eisimpleir:

1
2
3
<?PHP
  <img SRC="http://seuservidor.com/script.php?email=pessoa@gmail.com&targaid = Taylor + Lopes" />
?>

Dè a th '?
Cuimhnich gur nuair a tha an neach-cleachdaidh a 'fosgladh a' phost-d, fèin-obrachail an còir image Thèid luchdachadh, a tha dha-rìribh sgriobt. Tha seo feumail airson staitistig a 'phost-d a chaidh ìomhaigh, gabhail a-steach dearbhadh cò a dh'fhosgail (addressee) agus an uair a (dàta / Hora). soilleir, chan eil e na “tomhas”, fios againn cò a dh'fhosgail post-d, atrelamos oir dàta sin ann an URL aig an ìomhaigh nuair a tha e 'cur.

rud a tha dhìth
Airson seo a bhith ag obair, an neach-còmhnaidh a dh'fheumas a bhith air a rèiteachadh gus am bi post-d agad a leughadh ann an cruth HTML, ged a tha seo mar-thà coitcheann a 'gabhail ris leis a' mhòr-chuid de luchd-cleachdaidh. aig a 'char as miosa, an post-dealain solaraiche a thaisbeanadh teachdaireachd Abairt a bhacadh ìomhaighean, ach a 'faighneachd an neach-cleachdaidh ag iarraidh a thaisbeanadh, a tha cuideachd a tha mar as trice a 'gabhail ris, bho run beagan dhaoine fhaicinn ann an cleachdadh seo. Anns a 'chùis Google, teachdaireachd a 'nochdadh ann an riochd cheangal, mar sin:

1
2
3
...
  Ìomhaighean nach eil a 'nochdadh - Taisbeanadh-ìomhaighean gu h-ìosal - Còmhnaidh a 'nochdadh suport dealbhan@post-d.microsoft.le
...

Bidh mi a 'beachdachadh air dà dhòigh air seo a dhèanamh; an dà chuid ag obair a cheart cho, agus tha an dàrna tuilleadh tuigseach nach dàta a shealltainn ann an URL, ged a tha e ag iarraidh barrachd stòraidh feart. Thig air!

fuasgladh 1

ann an cleachdadh
Feumaidh tu ach dà PHP còdan:
(1) aon a chur air post-d ann an cruth HTML le an-thogail ann an ImG tag
(2) agus fear eile air a ghlacadh am fiosrachadh aig an àm a dh'fhosgail post-d

CHEUM 1 – Cuir post-dealain

sendmail.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?PHP
  // *** post-d agad (neach a chuir air post-d)
  $remetente_nome     = 'Anonymous';
  $remetente_email    = 'Anonimo@email.com';
 
  // *** agaibh targaid (post-dealain gu neach) 
  $destinatario_nome  = 'MarioBross';
  $destinatario_email = 'Mariobross@email.com';
 
  // *** Subject agus an teachdaireachd corp
  $cuspair      = 'Feuchainn na sgriobt a chur gu bàs airson a luchdadh ìomhaigh.';
  $teachdaireachd     = '
    <html lang="pt-br">
      <ceann>
        <meta charset="iso-8859-1" />    
        <tiotal a 'Chlàir>'.$cuspair.'</tiotal a 'Chlàir>
      </ceann>
      <buidheann>
        <img src="http://seuservidor.com/script.php?post-d = '.urlencode($destinatario_email).'&targaid = '.urlencode($destinatario_nome).'&Cuspair = '.urlencode($cuspair).'" />
      </buidheann>
    </html>';
 
  // Header ag ràdh gu bheil an susbaint den t-seòrsa HTML (a bhith comasach air leughadh na ImG tag agus a 'ruith an sgriobt)
  $header       = "MIME-Version: 1.0\n"; 
  $header      .= "Content-type: text / html; charset = iso-8859-1\n"; 
  $header      .= "From: ".(falamh($remetente_nome) ? $remetente_email : '"'.$remetente_nome.'" <'.$remetente_email.'>')."\n";
 
  // Cuir post-d
  $post-d = falamh($destinatario_nome) ? $destinatario_email : '"'.$destinatario_nome.'" <'.$destinatario_email.'>';
  mail($post-d, $cuspair, $teachdaireachd, $header);
?>

CHEUM 2 – ghlacadh fiosrachaidh

gu math, thu an aire gun nuair a leughadh an TAG ImG gairm a thèid a dhèanamh ris an fhaidhle “script.php”, cuid? Então agora temos que criá-lo para pegar as informações e armazená-las, de preferência num banco de dados.

Criando TABELA
Já que precisamos persistir os dados do destinatário que abriu o e-mail, podemos criar uma tabela como esta abaixo. Veja o campo `datahora_visualizado`, que refere-se última data e hora em que o usuário visualizou o e-mail e o campo `contador`, que irá registrar a quantidade de vezes que o e-mail foi visto.

maladireta.sql
1
2
3
4
5
6
7
8
9
CREATE TABLE  `maladireta` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `email` VARCHAR( 100 ),
  `destinatario` VARCHAR( 100 ),
  `assunto` VARCHAR( 200 ),
  `datahora_envio` DATETIME NOT NULL,
  `datahora_visualizado` DATETIME,
  `contador` INT DEFAULT 0
) ENGINE = MYISAM ;

Sgriobt a ghlacadh fiosrachadh agus a 'nochdadh ìomhaigh
a 'crìochnachadh, leig a ghabhail mar dàta seòladh puist-d, neach-ainm, cuspair an teachdaireachd agus an ceann-là / àm a dh'fhosgail post-d, stòradh e san stòr-dàta, chruthaich sinn, Ma dh'fheumas sinn a dhèanamh san àm ri teachd staitistigeil. No mu dheireadh Do sgriobt, -Rìribh a chruthachadh agus a thaisbeanadh an ìomhaigh, a-mhàin gun faighinn a tag le ImG bitheil èiginn :), ach ma tha thu ag iarraidh a shealltainn dad, a 'cruthachadh co-dhiù aon bàn image (1×1 Pixel) Cha fhaighinn briste Tag.

script.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?PHP
  // Initializes agus a 'làimhseachadh a' cur crìochan
  $destinatario_email = ghearradh(strip_tags(addslashes($_REQUEST['Post-d a'])));
  $destinatario_nome  = ghearradh(strip_tags(addslashes($_REQUEST['Faotainn'])));
  $cuspair            = ghearradh(strip_tags(addslashes($_REQUEST['Subject'])));       
 
  // Ceangal ris an stòr-dàta (Agaibh atharrachadh CEANGAL)
  $cheangal = mysql_connect('Mysql.seuservidor.com', 'Freumhach', 'MyPassword *** ***') no a '('Dh'fhàillig ceangal ris an stòr-dàta. "); 
  mysql_select_db('seubancodedados') no a '('Falhou ao selecionar o banco de dados');
 
  // Monta a SQL e insere no banco de dados, caso email ainda não exista, ou atualiza contador se existir
  $sql = 'SELECT email FROM maladireta WHERE email="'.$destinatario_email.'"';
  $res = mysql_query($sql);
  ma tha (mysql_num_rows($res) > 0) {
    $sql = 'UPDATE maladireta SET datahora_visualizado="'.date('Y-m-d H:i:s').'", contador=contador+1 WHERE email="'.$destinatario_email.'"';    
  }
  eile {
    $sql = 'INSERT INTO maladireta VALUES (null, "'.$destinatario_email.'", "'.$destinatario_nome.'", "'.$cuspair.'", "'.date('Y-m-d H:i:s').'", null, 0)';
  }
  mysql_query($sql);
 
  // Cria e exibe a imagem embutida ao email
  header("Content-type: image/png");
  $img = imagecreatefrompng("imagem.png");
  imagepng($img);
  imagedestroy($img);
?>

thuirt: Dìochuimhnich a chur ri chèile an sgriobt dealbh, Chan eil a 'chùis, ghairm mi “imagem.png”. Tha an ìomhaigh seo a 'nochdadh sa phost-d fhaightear corp, agus far a bheil daoine a chur sanasachd margaideachd, ach faodaidh e bhith na Gaidhealtachd, no ge b'e ni a tha thu ag iarraidh. Tha an sgriobt a dhearbhadh agus Innleadaireachd!

fuasgladh 2

chomasachd eile
Mar a mholadh le fear Leandro, nas tuigseach agus roghainn “fhaighinn” b'àill, an àite punching ann an URL aig an ìomhaigh tòrr dàta leithid post-d, cuspair, msaa, a chruthachadh a-hais aig an àm a 'cur post-d ga cheangal ri dàta seo, agus cuiridh e an URL-mhàin Hash. Nuair a bhios an neach a 'fosgladh post-d agus luchdadh suas an ìomhaigh, Bidh trafaig Hash dìreach an uair sin a thèid a ghlacadh le sgriobt agus ar ceangal ris an dàta a tha sinn ag iarraidh fios a bhith agad.

Cruthachadh-hais a 'bhòrd agus Dàta Ceangal
Cruthaichidh sinn a 'bhòrd a tha a' fuireach h-uile uair a tha sinn a cuiribh post-d. Note an achadh `hash`, a bhios mar phost-d a chaidh a ceanglachan a chur agus an neach an dàta a bha air a stòradh anns a 'chlàr.

maladireta.sql
1
2
3
4
5
6
7
8
9
10
CREATE TABLE  `maladireta` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `hais`VARCHAR( 50 ) NOT NULL,
  `email` VARCHAR( 100 ),
  `destinatario` VARCHAR( 100 ),
  `assunto` VARCHAR( 200 ),
  `datahora_envio` DATETIME NOT NULL,
  `datahora_visualizado` DATETIME,
  `contador` INT DEFAULT 0
) ENGINE = MYISAM

A 'cur post-d

sendmail.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?PHP
  // *** post-d agad (neach a chuir air post-d)
  $remetente_nome     = 'Anonymous';
  $remetente_email    = 'Anonimo@email.com';
 
  // *** agaibh targaid (post-dealain gu neach) 
  $destinatario_nome  = 'MarioBross';
  $destinatario_email = 'Mariobross@email.com';
 
  // *** Dàta eile gu buanachadh agus Hash (ÀIREAMH AITHNE)
  $hais               = MD5(Iar());
  $cuspair            = 'Feuchainn na sgriobt a chur gu bàs airson a luchdadh ìomhaigh.';
  $datahora_envio     = date('Y-m-d H:i:s');
 
  // Ceangal ris an stòr-dàta
  $cheangal = mysql_connect('Mysql.seuservidor.com', 'Freumhach', 'MyPassword *** ***') no a '('Dh'fhàillig ceangal ris an stòr-dàta. "); 
  mysql_select_db('seubancodedados') no a '('Falhou ao selecionar o banco de dados');  
 
  // Monta a SQL e insere no banco de dados
  $sql = 'INSERT INTO maladireta VALUES (null, "'.$hais.'", "'.$destinatario_email.'", "'.$destinatario_nome.'", "'.$cuspair.'", "'.$datahora_envio.'", null, 0)';
  mysql_query($sql);
 
  // *** Brath a chur
  $teachdaireachd     = '
    <html lang="pt-br">
      <ceann>
        <meta charset="iso-8859-1" />    
        <tiotal a 'Chlàir>'.$cuspair.'</tiotal a 'Chlàir>
      </ceann>
      <buidheann>
        <img src="http://seuservidor.com/script.php?hais = '.$hais.'" />
      </buidheann>
    </html>';
 
  // Header ag ràdh gu bheil an susbaint den t-seòrsa HTML (a bhith comasach air leughadh na ImG tag agus a 'ruith an sgriobt)
  $header       = "MIME-Version: 1.0\n"; 
  $header      .= "Content-type: text / html; charset = iso-8859-1\n"; 
  $header      .= "From: ".(falamh($remetente_nome) ? $remetente_email : '"'.$remetente_nome.'" <'.$remetente_email.'>')."\n";
 
  // Cuir post-d
  $post-d = falamh($destinatario_nome) ? $destinatario_email : '"'.$destinatario_nome.'" <'.$destinatario_email.'>';
  mail($post-d, $cuspair, $teachdaireachd, $header);
?>

Cuimhnich gur, sa chùis seo, URL (SRC) 'S e ìomhaigh ach a mhàin le Hash.

Cunntasachd post-d a thaisbeanadh

script.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?PHP
  // Ghlacadh am post-d Hash fhaicinn
  $hais = ghearradh(strip_tags(addslashes($_REQUEST['-Hais'])));
 
  // Ceangal ris an stòr-dàta
  $cheangal = mysql_connect('Mysql.seuservidor.com', 'Freumhach', 'MyPassword *** ***') no a '('Dh'fhàillig ceangal ris an stòr-dàta. "); 
  mysql_select_db('seubancodedados') no a '('Falhou ao selecionar o banco de dados');
 
  // Monta SQL agus ceann-là a 'coimhead air ùrachaidhean post-d agus an aghaidh ann an stòr-dàta
  $sql = 'SELECT hash FROM maladireta WHERE hash="'.$hais.'"';
  $res = mysql_query($sql);
  ma tha (mysql_num_rows($res) > 0) {
    $sql = 'UPDATE maladireta SET datahora_visualizado="'.date('Y-m-d H:i:s').'", contador=contador+1 WHERE hash="'.$hais.'"';
    mysql_query($sql);
  }
 
  // Cria e exibe a imagem embutida ao email
  header("Content-type: image/png");
  $img = imagecreatefrompng("imagem.png");
  imagepng($img);
  imagedestroy($img);
?>

Ah, se você quiser consultar os e-mails que foram visualizados a partir de uma data, poderia fazer um script com uma SQL tipo essa que, Chan eil a 'chùis, busca todos os registros recentes de e-mail vistos a partir de 27 Am Faoilleach 2013. Fica a dica

1
2
3
4
5
6
7
8
 
  SELECT * 
  FROM 
      `maladireta` 
  WHERE 
      contador > 0 AND 
      DATE(datahora_visualizado) >= DATE("2013-01-27")
;
iomlan a dhol: 34932

8 lèirmheasan “PHP: Run sgriobt loading ìomhaigh a dhaingneachadh ann an post-d

  1. Leandro Chaves Thuirt:

    Taylor,
    Não é uma boa prática colocar o email do usuário no link da imagem. Tha e air leth freagarrach airson an cuir a-steach dàta san stòr-dàta aig an àm a bhith a 'cur agus a chur a-hais clàr no an id air a' cheangal, mar sin a chomharrachadh a dh'fhosgail post-d.

    • Oi Leandro, a 'toirt taing airson beachd ann. Sin fios cinnteach. A 'smaoineachadh mu dheidhinn fiosrachadh tèarainteachd thu ceart, ach ann an cleachdadh, bhiodh e ceart preciousness, a chionn 'phost-d cheangal (image) gu bheil thu a 'beachdachadh air cudromach airson dìon a-mhàin a bhios a bhith ri fhaotainn ann an neach fhèin bhogsa a-steach. 'S e sin a' falach bho rudeigin dhomh gun fhios! A bharrachd, dh'fheumadh tu a chumail air ur cathair eile bhòrd le mìltean de chlàran agad puist, gun fiù fios ma tha na puist-d a tha ann a tha dligheach. An uair sin ma tha thu ag iarraidh “enchugar” bhanca agaibh, cha b 'urrainn, mar chùis reifreansail ionracas eadar bùird, Bhiodh feum air clàran a chumail, air pian riamh fios a dh'fhosgail post-d. Ach bhon a tha sinn a 'bruidhinn mu dheidhinn tèarainteachd, a 'seachnadh a bhith post-d còmhlachadh le Wireshark beatha, dè ghabhadh dèanamh a tha a 'cleachdadh SSL (https) an dà chuid a 'cur post-d, mar an ìomhaigh a tha a 'ceangal. Ach mar moladh agaibh, Bidh mi a 'foillseachadh a leithid fuasgladh, choisinn!

  2. Ola ,
    Tha mi a 'coimhead ri fhaighinn an àireamh IP aig an neach a bha a' leughadh na teachdaireachd , Ach ma tha e cunntas Hotmail agad, mar eisimpleir, tagh e an raon IP ri àrainn-lìn anns na Stàitean Aonaichte. Uime sin chan eil mòran cuideachadh . Ciamar a gheibh mi an fhìor IP aige inneal ?

  3. Regis Thuirt:

    Strange Uaireannan tha e ag obair agus uaireannan chan eil an obair a 'cleachdadh Chrome, Opera S Fire Fox eil gmail S Hotmail – tasgadan air a ghlanadh agus cookies, ach uaireannan chan eil e a 'dèanamh clàradh air ma BD am post-d air a bhith air fhosgladh no nach eil !!

  4. Diego Thuirt:

    Galera..tenho a 'chlàr-sgriobt le nome..email…cpf…RG…Bha mi ag iarraidh an dèidh a h-uile Cleachdaiche a chlàradh agus a chur gu mo stòr-dàta …rudeigin a thilleas airson a automatico..tipo post-d
    EISIMPLEIR:”fiosrachadh a chlàradh gu soirbheachail ..” a 'feitheamh airson ar conaltraidh

    Bu mhath leam??

    • Opa, mar a thuirt mi anns a 'Phuist: “Airson seo a bhith ag obair, an neach-còmhnaidh a dh'fheumas a bhith air a rèiteachadh gus am bi post-d agad a leughadh ann an cruth HTML”. Le bhith a 'default an HTML tha thugadh, ach eadhon Gmail a 'gluasad a' fàgail gu TEACS, cha d 'obair, oir bidh e dìreach a thaisbeanadh air na tagaichean HTML mar teacs an àite 'fàgail orra.

Leave a Reply

Seòladh puist-d nach tèid fhoillseachadh. Feum air achaidhean a tha air an comharrachadh le *