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 = "alx_std2@yahoo.com"
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 = "alx_std2@yahoo.com"
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 = "alx_std2@yahoo.com" To = "agrozea@agora.ro"
Subject = "Corecturi">
<cfmailparam name = "Reply-To" value = "agrozea@agora.ro">
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 = "agrozea@agora.ro">, 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.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro