Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


IPRO - PC Magazine Romania, Iulie 2003
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB

Poșta: CFML și poșta electronică

Ioan Alexandru Lazăr

Cred că ați pățit asta măcar o dată: ați găsit un sit care v-a impresionat prin design ori conținut, ați vrut să-l felicitați pe autor sau să-i dați o sugestie, dar când ați văzut la "Contact us" că trebuie să accesați iarăși contul dumneavoastră de mail, ați renunțat. Mai ales dacă foloseați un serviciu exclusiv webmail (mâna sus cei care au un cont gratuit la Yahoo ... exact!). Probabil că unii au aceeași reacție când văd situl dumneavoastră ... n-ar fi mai bine ca vizitatorii să vă poată trimite părerile lor direct de pe sit?

Ei bine, folosind CFML (ColdFusion Markup Language), puteți face lucrul acesta. Dar CFML poate face chiar mai mult de atât. Folosind CFML puteți construi un client de e-mail în toată regula ... ceea ce, nu sună rău deloc, nu-i așa?

acromedia a dotat ColdFusion cu posibilitatea de a interacționa cu POP3 și SMTP cu efort minim din partea programatorului.

Haideți să vedem deci cum putem folosi CFML pentru poșta electronică.
<CFMAIL>
Tag-ul <CFMAIL> îl veți folosi, probabil, foarte des. <CFMAIL> trimite un e-mail care conține date obținute în urma unei interogări (query) folosind un server SMTP. Este foarte util când vreți să lăsați un vizitator să vă trimită mesaje direct de pe site, dintr-un formular (form).
Haideți să aruncăm o privire la următoarea secvență:

<html>
<head>
</head>
<body>
<form name="frmContact"
Action="trimite_mail.cfm" Method="Post">
Email <input type="text" name="Email"><br>
Mesaj <br><textarea name="Mesaj" cols="40" class="textfields" rows="4"></textarea><br>
<input type="submit" name="submit" value="Trimite">
</form>
<cfmail to = "[email protected]"
from = "#form.Email#"
subject = "E-Mail"
type="HTML" >
#form.Mesaj#
</cfmail>
</body>
</html>

Mai întâi am creat formularul într-un fișier numit trimite_mail.cfm.
Puteți vedea că este vorba de un formular simplu - utilizatorul va completa adresa lui de e-mail în câmpul Email, după care, atunci când va apăsa pe butonul "Trimite", mesajul va fi trimis. De acest lucru se ocupă secvența:

<cfmail to = "[email protected]"
from = "#form.Email#"
Subject = "E-Mail"
type="HTML" >
#form.Mesaj#
</cfmail>

<cfmail to = "alx_std2@yahoo. com" specifică adresa la care va fi trimis mesajul. Aici, este o adresă "statică", dar dacă vreți, de exemplu, să lăsați utilizatorul să-i recomande unui prieten pagina dumneavoastră, puteți adăuga un câmp Destinatar și apoi să scrieți <cfmail to = "#Form.Destinatar#". Mai departe, from = "#form.Email#" va specifica, în header-ul mesajului, adresa celui care l-a trimis (evident, cu condiția ca el să fi completat câmpul respectiv). subject = "E-Mail" specifică subiectul (subject) mesajului. Și acesta poate fi dinamic. type="HTML" este un atribut opțional. Dacă nu îl includeți, nu e nici o problemă, dar e bine să-l includeți, deoarece specifică faptul că mesajul poate conține tag-uri HTML. În fine, #form.Mesaj# specifică ceea ce trebuie trimis. Nu e greu, nu?

<CFMAILPARAM>
Tag-ul <CFMAILPARAM> vă permite să folosiți un attachement pentru mesajul dumneavoastră sau să adăugați unele informații în header. Să luăm următorul
exemplu:

<cfmail from = "[email protected]" To = "[email protected]"
Subject = "Corecturi">
<cfmailparam name = "Reply-To" value = "[email protected]">
Am mai schimbat câte ceva. E mai bine acum?
<cfmailparam file = "c:\articole\cfm_mail.doc">
</cfmail>

În cazul în care mesajul ar fi un răspuns (reply) este preferabil să folosiți <cfmailparam name = "Reply-To" value = "[email protected]">, ceea ce se poate dovedi util. <cfmailparam file = "c:\articole\cfm_mail. doc"> specifică fișierul ce va fi trimis ca attachement.

<CFPOP>
Aceia dintre dumneavoastră care sunt progamatori foarte-foarte talentați și cu o mare doză de timp liber (sau plătiți foarte bine pentru ceea ce fac...) pot folosi capabilitățile CFML de a utiliza căsuțele poștale (mailbox) POP3. POP3 este "ceva" mult mai complex, care permite manipularea avansată a mesajelor. Altfel spus, puteți folosi POP3 pentru a scrie un client de
e-mail. Ia să vedem...

<cfif IsDefined("form.server ")>
<!—- make sure server, username are not empty —->->
<cfif form.server is not "" and form.username is not "">
<cfpop server = "#server# " username = #UserName#
password = #pwd#
action = "GETHEADERONLY" name = "GetHeaders">
<h2>Mesaje<h2>
<p>Numărul de mesaje:
<cfoutput>#GetHeaders.recordCount#</cfoutput></p>
<ul>
<cfoutput query = "GetHeaders">
<li>Nr.: #currentRow#: De la: #From# — Subiect: #Subject#
</cfoutput>
</ul>
</cfif>
</cfif>
<form action = "cf_popmail.
cfm " method = "post">
<a>Server-ul POP3:</a>
<input type = "Text" name = "server">
<a>Nume (username):</a>
<input type = "Text" name = "username">
<a>Parola:</a>
<input type = "password" name = "pwd">
<input type = "Submit" name = "Citește headere">
</form>

Evident, aici avem de-a face doar cu o parte din lucrurile care se pot face, pentru că interacțiunea CFML-POP3 este completă - puteți trimite, primi și șterge mesaje HTML/text-only, cu sau fără attachement-uri.

Mai întâi, verificăm dacă a fost definit un server <cfif IsDefined("form.server")> și avem grijă ca numele de utilizator (username) și parola (password) să fie definite <cfif form.server is not "" and form.username is not "">. Dacă nu, i le cerem utilizatorului printr-un formular (form).

Aici am demonstrat doar cum pot fi citite header-ele mesajelor. De aceea, am folosit:

<cfpop server = "#server#" username = #UserName#
password = #pwd#
action = "GETHEADERONLY"
name = "GetHeaders">

secvență care cere server-ului să întoarcă doar header-ele mesajelor action = "GETHEADERONLY "name =
"GetHeaders">. Folosindu-ne de:

<cfoutput query = "GetHeaders">
<li>Nr.: #currentRow#: De la: #From# — Subiect: #Subject#

programul nostru va numerota mesajele (astfel încât să le putem afișa ca într-un tabel, pe linii), și apoi va afișa de unde au venit și subiectul lor.

Resurse
Vă recomand documentația Macromedia, care se poate descărca gratis de pe situl www.macromedia.com, și este scrisă excelent (ca și cea pentru ActionScript, fiind ceva caracteristic Macromedia).

DevNet secțiunea ColdFusion conține o serie de articole
organizate pe mai mult de 20 de categorii, printre care: configurare, CFML, integrarea cu alte produse, baze de date, java/JSP, servicii web și XML / XSLT.

Forumul oficial ColdFusion
http://www.macromedia.com/devnet/mx/coldfusion/

ColdFusion Development Center
http://webforums.macromedia.com/coldfusion/

Acestea fiind zise, mult noroc și happy coding!


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro