Nodemailer & NodeJS – API za slanje emaila

Cilj ovog blog posta je pokazati kako napraviti API za slanje emaila. To ću postići koristeći NodeJS, ExpressJS, Nodemailer i naravno Gmail.

Postavljanje projekta

Kreiram mapu za projekt i unutar nje pokrećem naredbu

i odmah nakon toga instaliram potrebne NPM pakete:

Express.js: $ npm install express --save
Nodemailer: $ npm install nodemailer--save
bodyParser: $ npm install body-parser -save

Struktura projekta prema package.json sada izgleda ovako:

Sada imam sve spremno za kreiranje datoteke unutar koje će se nalaziti logika API-ja.

API sada mogu i pokrenuti te se uvjeriti da radi. Pokrećem ga naredbom u kojoj riječ “index” označava naziv .js datoteke.

Nodemailer & NodeJS – API za slanje emaila

To je mogla biti i npr. server.js datoteka. U tom bi slučaju API pokrenuo naredbom $ node server.

Na adresi http://localhost:8080/api mogu vidjeti da je API uspješno pokrenut.

Nodemailer & NodeJS – API za slanje emaila

Slanje testnog e-maila

Unutar datoteke index.js sada ću kreirati API za slanje e-maila.

S obzirom na parametar secureConnection: false vrlo je važno da omogućim dopuštanje nesigurnijim aplikacijama da pristupe računu na adresi https://myaccount.google.com/security?pli=1

“Less Secure Apps” - Google

Jer ako to ne napravim dobit ću poruku o grešci što znači da e-mail neće biti poslan/primljen. Ovaj dio mi je zadavao najviše problema prije dvije godine kada sam prvi put radio Nodemailer API. U pitanju je bila funkcionalnost vezana uz resetiranje lozinke.

Nodemailer & NodeJS – API za slanje emaila

Ako sada putem Postmana pokrenem POST zahtjev na adresu http://localhost:8080/api/posaljiEmail vrlo brzo će mi stići e-mail.

Nodemailer & NodeJS – API za slanje emaila

Zašto se u slici iznad kao adresa primatelja nalazi drugačija adresa od one navedene gore u API-ju? To je zbog postavki unutar Gmaila gdje je navedeno da je adresa k*n*a*t@tomislavstankovic.com zadana adresa pošiljatelja. S obzirom da ovdje koristim Gmail kao servis za slanje e-maila jasno je da će on uzeti te zadane postavke.

Nodemailer & NodeJS – API za slanje emaila

E-mail sa “pravim” podacima

U gornjem sam se primjeru uvjerio da moj Nodemailer API uredno radi, a sada želim imati mogućnost određivanja na koju adresu i koji sadržaj želim poslati.

API sada izgleda ovako:

Nodemailer & NodeJS – API za slanje emaila

Ovdje se može vidjeti da podatke šaljem kroz req.body i upravo je to razlog zbog kojeg koristim body-parser. U slučaju da nisam koristio body-parser dobio bi sljedeću grešku.

Ovdje se može vidjeti da podatke šaljem kroz <span class="lang:js decode:true  crayon-inline">req.body</span> i upravo je to razlog zbog kojeg koristim <strong><em><a href="https://www.npmjs.com/package/body-parser" rel="noopener" target="_blank">body-parser</a></em></strong>. U slučaju da nisam koristio <em>body-parser</em> dobio bi sljedeću grešku.

Također, ako ne unesem sve potrebne podatke body-parser neće imati s čime raditi i opet ću dobiti grešku. U ovom slučaju nisam poslao e-mail adresu primatelja.

Nodemailer & NodeJS – API za slanje emaila

Nakon što unesem sve potrebne podatke, body-parser će odraditi svoje i e-mail će biti uspješno poslan/primljen.

Nodemailer & NodeJS – API za slanje emaila

E-mail poslovna komunikacija

E-mail poslovna komunikacija

Neverbalna poslovna komunikacija ne odnosi se samo na kontakt u četiri oka, nego i na komunikaciju putem e-maila, telefona, pisma, web stranice ili bloga. Ovoga puta pažnju ću posvetiti neverbalnoj poslovnoj komunikaciji putem e-maila.
E-mail je pogodan za detaljnije dogovore uslijed kojih bi kod komunikacije putem telefona ili mobitela vjerojatno nastala konfuzija zbog puno informacija koje se ne bi stigle smisleno obraditi.
E-mail na tom polju nudi komociju i mogućnost spremanja i razvrstavanja podataka po važnosti koje je kasnije moguće iznova proučavati bez potrebe da se sve pamti.

Hoćete li na poslovne e-mailove odgovarati samo tijekom radnog vremena ili ćete to nastaviti raditi u slobodno vrijeme, izbor je na vama. Mogući problem kod druge opcije je taj što postoji mogućnost da se previše opustite, jer ipak ste u vlastitom domu gdje je to za očekivati, te takav način komunikacije prenesete na e-mail što se može učiniti neprofesionalno ili postoji mogućnost da određenu poruku shvatite previše osobno. Ukoliko nemate poseban poslovni prostor jer ste npr. freelancer odredite vrijeme kada radite i vrijeme kada se odmarate jer ćete na taj način biti ‘programirani’ za potrebne radnje.

Naziv e-mail adrese
Ono što je još važnije od prethodno napisanog je izbor e-mail adrese koja nikako ne bi smjela biti sa besplatnog mail servisa kao što je npr. Gmail. Odličan odabir bi mogao biti ime.prezime@nazivfirme.com pomoću čega pokazujete svoju ozbiljnost i nastojanje da vas se ozbiljno shvati.

Naslov
Mora biti konkretan i jednoznačan. Primatelj e-maila mora iz prve shvatiti o čemu se radi što mu morate omogućiti ako želite brz odgovor ili ikakav odgovor pošto se dosta nejasnih e-mailova briše bez da ih se uopće otvori.

Sadržaj
Neka ne bude previše opširan. Ograničite se na maksimalno 20 rečenica u kojima ćete ukratko navesti zahtjeve, odgovore ili uputiti pitanja. Pravopis je od velike važnosti te je stoga bitno jednom do dva puta pročitati sadržaj kako bi se uvjerili da je sve na svojem mjestu. Smajliće izbjegavajte ili ih barem svedite na minimum, a boja teksta neka ostane defaultna i bez nepotrebnih ukrašavanja, bojanja, stilova, nakošenja, podebljanja…

Privitak (attachment)
U privitak možete staviti sve one informacije koje se ne nalaze u sadržaju. Možete si dopustiti koji redak teksta više, poneki graf, tablicu, sliku i sl., uz napomenu da svaki od tih sadržaja mora imati svrhu.

Predstavljanje i završetak maila
Ako nekome prvi put šaljete poslovni e-mail predstavite se. Pored imena i prezimena dodajte titulu, vašu funkciju i sl., te koristite opciju automatske pozdravne poruke koja će se nalaziti na samom kraju e-maila.

P.S. Ako želite slati sadržaj za koji mislite da bi vas mogao ugroziti ako ga netko treći vidi onda odustanite od slanja e-maila. Vaša privatnost je u vašim rukama sve dok netko treći ne dobije dovoljno jaku želju da se uplete. Kad smo već kod toga pokušajte ne koristiti opciju CC (carbon copy).

Google mail – Gmail

Sve više je korisnika koji koriste Gmail iz nekoliko razloga – jednostavnost, puno prostora, integracija s ostalim Google uslugama. Međutim, u velikoj većini slučajeva isti ti korisnici ne daju veliku pažnju održavanju računa jer se vode činjenicom da ionako nitko ne vidi što rade. Nije to razmišljanje daleko od istine, ali puno je bolje imati sređen račun – sitnice su bitne.

Da bi sebi olakšali kontrolu nad računom potrebno je pridržavati se nekoliko jednostavnih pravila:

1.) Pristigla pošta – Poželjno je da u ovoj mapi ne držite poštu duže od 24 sata. Nije potrebno puno vremena da se izgubite među stotinama mailova. Lako je reći ‘ma sutra ću to obrisati’, ali onda se to produži na tjedan dana, pa mjesec, kasnije vam se više neće dati jer će se pošta nagomilati i baš zato se držite pravila od 24 sata. Kada se negdje registrirate i na mail vam stignu login podaci posebno je važno odmah obrisati iste, u prvom redu zbog sigurnosti.

2.) Chatovi –  Chat služi za trenutnu komunikaciju i nema potrebe da čuvate sve razgovore kroz duže vremensko razdoblje, iako Vam je možda fora voditi statistiku koliko ste i kada s nekim chatali. Ukoliko se u određenom razgovoru nalaze važni podaci sačuvajte ih na vlastitom računalu, a razgovor obrišite. Na kraju krajeva zapitajte se što imate od čuvanja svih razgovora, hoćete li ih ikada sve čitati – ako su odgovori negativni znate što trebate napraviti.

3.) Odlazna pošta – Poslali ste pitanje, odgovor ili nešto treće i dobili potvrdu, dopunu ili nešto treće te više nema potrebe da čuvate sve poslane e-mailove. Ipak, prostora za pohranu je sve više, sve je povoljniji i dostupniji pa s te strane možete čuvati sve što ste ikada poslali, ako baš to želite.

4.) Skice – Prije nekoliko dana sastavili ste mail koji još nije spreman za slanje iz tko zna kojeg razloga. Možda je sada vrijeme da se skica odbaci umjesto izgovora ‘Ma sutra ću, još samo da…’

5.) Otpad – Mapa u koju odlaze obrisani razgovori, spam i ostala nepotrebna pošta. Nakon brisanja svih nepotrebnih mailova vrijeme je da stavite točku na i brisanjem otpada. Jer ako sve što ste ‘obrisali’ ostavite u mapi ‘Otpad’ to i neće imati previše smisla jer niste napravili ništa.

6.) Oznake – Preporuka je da ih koristite za svaku mail adresu koja je integrirana s Gmail računom. Svakoj oznaci dodijelite određenu boju što će Vam olakšati razlikovanje poslovnih od privatnih adresa.

7.) Kontakti – Ovdje će biti adrese svih osoba s kojima ste ikada komunicirali. Određeni broj adresa koristili ste samo jednom ili tek nekoliko puta i znate da vam više neće trebati onda je vrijeme da ih obrišete.

Vjerujem da ćete se bolje osjećati kada obrišete ono što je nepotrebno, a također ove natuknice možete iskoristiti i za ostale e-mail servise.

Ako vam sve ovo nije dovoljno možda je vrijeme da prestanete koristiti trenutnu adresu i otvorite novu gdje ćete krenuti ispočetka.  Nekada je potrebno riješiti se repova prošlosti.