Friday, July 15

PHP වලින් localhost එකෙ ඉඳන් Gmail එක හරහා email යවමු








මෙන්න මේකයි ස්ටොරිය. PHP වලින් වැඩ කරන බහුතර ශිෂ්‍යයො එව කරන්නෙ ලොකල් හොස්ට් එකෙන් නෙ.හුගක් වෙලාවට වැම්ප් හො XAMP.එහෙම කරල පොජෙක්ට් කලාම ඔකෙ ඊමෙල් සීන් එකක් ආවම එක්කො මෙල් සර්වර් එකක් හොයා ගෙන ජිල් බරියක් කරන්න ඕනි...නැත්තන් බොරුවට mail() ෆන්ශන් එකෙ කොඩ් එකෙ දීල message sent කියල පෙන්නල ලකුනු ගන්නව.එහෙම බැරි වෙලාවක අපි අර අපේ දෙවනි අවුරුද්දෙ පොජෙක්ට් එකට කලා වගේ postcast server වගේ එකක් දාගෙන ඉල ඇදෙන කං ඕකෙ සෙටින්ස් හදාගන්න ඕනි...ඒ කලත් ඔන්න දවස් 15 න් එකෙ ෆ්‍රි යුස් කරන කාලෙ ඉවරයි..එහෙම නැත්තං යවන මේල් එක අස්සෙ උන්ගෙ ඇඩ්.


මේල් සර්වර් එකක් ලැබිල තියෙන අයට මේ ප්‍රශ්න මොකුත් නැතුව ඇති..තව අය ඉන්නව ෆ්‍රි තැන් වල පොඩියට සයිට් එක හොස්ට් කරල ඒත් මේල් සර්වර් එකක් භාවිතයට නැ..ඉතින් එයාලටත් මේ ප්‍රශ්නෙ ඇති.


මේ වැඩෙට අපිට ඕනි වෙනව SMTP එකක්..ඒ කියන්නෙ simple mail transfer protocol එකක්..හරි සිම්පල් ඒත් හරි එකක් හොයා ගන්න අමාරුයි. දෙනව කියන අයගෙ වෙන වෙන සෙල්ලම් ගොඩයි.


මෙතෙන් දි අපි දන්න කියන ගූගල් දෙයියො සහයට එනව.මොකො දන්නව ද ගූගල් ල එයාලගෙ smtp සර්වර් එක අපිට access කරන්න දෙනව.ඒ හින්ද මෙතෙන් දි අපිට ඕනි වෙන්නෙ ගූගල් මේල් එකවුන්ට් එකක් පමණයි.


මෙතෙන්දි තව එක දෙයක් කියන්න ඕනි මේ එකක්වත් මම තනියෙන් මගෙ ඔලුවට ආපු කොඩ් ටයිප් කරල හොයා ගත්තු එවා නෙවෙ..අන්තර්ජාලයෙ ව්විධ මුලාශ්‍ර පරිහරණය කරල ඒ ඒ කොටස් ඇරගෙන ඒව මගෙ වැඩෙට ගැලපෙන්න අමුණල සකස් කරල තියෙන්නෙ මගේ ඔලුවෙන් .සමහර ඒව වල තිබ්බ වැරදි අඩු පාඩු හදාගන්න තව ඒව බලන්න වුනා..ඒක තැනකින් කියල හෙව්වෙ නැති නිසාත් එක එක දවසට ඒක තැන් වලින් ඒ  ඒ වෙලාවට ගත්තු ඒව නිසා  රිෆරන්ස් දාන්න මතකයක් නැ.ඒව ලියපු කරපු කාටත් පින්.


හරි තව දෙයක් ඕනි..ඒ තමයි PHPmailer ..ඔයාගෙ PHP වර්ශන් එක 5 හො 6 නම් මේතනින් භා ගන්න.  මම ගත්තෙ ඔය PHPMailer v5.1 කියන එක තම ඕං.මේක PHP වල මේල් යවන්න භාවිතා කරන ක්ලාස් එකක්..මෙකෙ එක්සාම්පල් එහෙම බලල ඔයාලට හුගක් දෙවල් කරන්න හැකි වෙවි.ඩොක් එකකුත් තියෙනව නෙ..දැන් ඕක භාගෙන අර වැම්ප් වල තියෙන WWW ෆොල්ඩර් එකට මේ ෆොල්ඩර් එක දාගන්න.මේ ෆොල්ඩර් එකෙ නම ලේසියට අපි දාගමුකො PHPMailer කියල.


හරි දැන් තව එක දෙයක් මුලදිම කර ගමු..නැත්තං එන එරර් එක ගුගල් වල ගහල මට වගේ පැය ගනන් හේතුව හොයන්න වෙයි. දන්නවනෙ වැම්ප් එකෙ php.ini file එක..එකෙ තියෙනව එක්ස්ටෙන්ශන් එකක් php_openssl.dll කියල...ඒක " ; " මේ වගෙ කමෙන්ට් එකක් විදිහට කරල inactive තියෙන්නෙ..එකෙ කමෙන්ට් සලකුන අයින් කරල ඇක්ටිව් කරගන්න වෙනව.


හරි දැන් තියෙන්නෙ කොඩ් කරන්න..පොඩ්ඩක් ඉන්න දැන් මම එක මෙතන ගහන්න කලින් එකෙ මම දාල තියෙන මගෙ පාස්වර්ඩ් මකන්න.


මෙන්න කොඩ් එක භා ගන්න..




මෙකෙ ලයින් නම්බර් 9 - 13 දක්වාත් 17 හා 18 ත් ඔබේ දත්ත ඇතුල් කර සකස් කර ගන්න..
9 ඔයාගෙ ජීමෙල් ඇඩ්‍රස් එක
10 එකෙ පාස්වර්ඩ් එක
11 ඊමෙල් එක ලබන කෙනා රිප්ලයි එබුවම යන ඇඩ්‍රස් එක
12 ලබන්නගෙ ඊ මෙල ඇඩ්‍රස් එක
13 එයාගෙ නම
17 සබ්ජෙක්ට් එක
18 ඊමෙල් එකෙ අන්තර්ගතය


දැන් ඉතින් ඔය කොඩ් එක අපි මොකක් හරි නමකින් .php වලින් www ෆොල්ඩර් එක තුල සෙව් කර ගමුකො.


දැන් ඔයාලට පේනව ඇති මේ කොඩ් එකෙ smtp කියල class එකක් උඩ දී පාවිච්චියට ඇරගෙන තියෙනව. මෙන්නෙ මේ ක්ලාස් එකෙත් පුන්ච් වෙනසක් කරන්න ඕනි.ඉතින් අර කලින් සෙව් කරපු PHPmailer ෆොල්ඩර් එකෙ class.smtp.php කියන ෆයිල් එක ඕපන් කරන්නකො. දැන් ඕකෙ ලයින් නම්බර් 115 ලඟ මෙන්න මේ විදිහට ගූගල් smtp එක සහ port නම්බර් එක දෙන්න ඕනි.




දැන් ඔන්න ඒ ටික හරි...මොනාව ත් අමතක වුනා ද..එක එක තැන් වලින් බල බල ඒක වැරදි එක එක දවස් වල හරි ගැස්සුවෙ..ඒ හින්ද දැන් ලියන කොට කරපු ඔක්කොම ලියවුනා ද කියල සැකයි..ඔන්න මම නම් ඊමෙල් එකකුත් යවල ටෙස්ට් කරල ම තමයි මේක ඔයාල වෙනුවෙන් ලිව්වෙ..


දැන් ඉතින් වැම්ප් ලොකල් හොස්ට් එක හරහා ෆයිල් එක රන් කරවන්න කො.


තව ඉතින් මේකට ෆොර්ම් එකක් ඇඩ් කරල ඩෙටා අරගෙන ඒ ඩේටා මේවට පාස් කර ගෙන ලස්සනට වැඩෙ කරගන්න අවශ්‍යය විදිහට හොදේ.


මම භාවිතා කරපු ක්‍රමෙ හො තාක්ශනික යෙදුම් වල වරදක් ඇතොත් සමාවෙලා මටත් කියා දෙන්න.තව දෙයක් මෙව මෙහෙම තැන් තැන් වලින් හරි සර්ච් කරල හොයා ගන්න මට ලැබුනෙ මීට කලින් ෆොරම් වල වෙබ් සයිට් වල බ්ලොග් වල මේ ගැන වෙන අය කතා කරල තිබ්බ නිසා..එයාලට ගොඩාක් ස්තූතියි.


*************************
හිතට ආපු අදහස් comment තිරුවෙ අකුරු කර යන්න සාදරණීය ඇරයුමක්.

26 comments:

  1. එල කිරි වැඩක නේ. යකඩෝ මට කම්පනාවට ආවේ නෑ නේ මෙහෙම දෙයක් කරන්න පුළුවන් කියල. මම කලේ හොස්ටින් එකක් සල්ලි දීල ගත්ත එක. කොහොම වුනත් වැඩේ නං සුපිරි. පස්සේ වෙලාවක මේ ක්‍රමෙත් ටෙස්ට් කරලා බලන්නම්. ස්තුතියි

    ReplyDelete
  2. හොඳ ලිපියක්.. මම වැඩකරපු තැනත් ඉන්නකොට සයිට් එකක් හැදුවා ඒක තිබුනේ ඒ company එකේම සර්වර් එකක, ඒකෙ දාල තිබුනේ වැම්ප්.. එයාලගෙ ඩොමේන් එකට ගූගල් ඇප්ස් දාලා ඒකයි PHPMailer එකයි භාවිතා කරලා තමයි මම වැඩේ කලේ.. ගූගල් ඇප්ස් දැන්මාම ඒ ඩොමේන් එකෙන්ම ඊමේල් හදන්න පුලුවන්නේ..

    "php_openssl.dll කියල...ඒක " ; " මේ වගෙ කමෙන්ට් එකක් විදිහට කරල inactive තියෙන්නෙ..එකෙ කමෙන්ට් සලකුන අයින් කරල ඇක්ටිව් කරගන්න වෙනව."

    කියන එකට මමත් කෑල්ලක් එකතු කරන්නම්.. මටත් සීන් එක උනා.. ඕක කරාට පස්සේ මතක් කරලා වැම්ප් සර්වර් එක රීස්ටාට් කරන්න.

    ReplyDelete
  3. HTML Mode මේල් යවද්දි වින්ඩෝස් සර්වර් වලදි පොඩ් පොඩි ගැටලු මතු වෙන්න පුලුවන්.phpmailer කියන්නේ පහසුකම් ගොඩක් තියන ලයිබ්‍රියක්.ඕකෙන් ඇටෑච්මන්ට් එක්කත් මේල් යවන්න පුලුවන්. මෙන්න ඒ ගැන මම ලියපු ලිපිය.

    ReplyDelete
  4. ගොඩක් වටින mail එකක් පැන්ඩෝ

    ReplyDelete
  5. වැදගත් ලිපියක්. බොහොම ස්තූතියි බෙදා ගත්තට :)

    ReplyDelete
  6. කෝඩ් එක ඉමේජ් එකක් විදිහට නැතුව ටෙක්ස්ට් එකක් විදිහට තිබ්බා නම් හරි. කොපි කරගන්න ලේසියි.

    මේක නම් නියම වැඩ කෑල්ලක්. මමත් පී එච් පී කරලා තිබ්බට මෙහෙම දෙයක් නම් කරලා නෑ. අත්හදා බලන්න ඕනේ.

    ප.ලි. - පැන්ඩා කියන්නේ තාරාලාගේ කැම්පස් එකේ ඉන්න පැන්ඩද ?

    ReplyDelete
  7. thanks good post
    visit my site
    http://www.ptcguide.t15.org/

    ReplyDelete
  8. තැන්කූ තැන්කූ මාත් මේ වගේ එකක් හොය හොය හිටියේ. ගොඩක් ඒවා ට්‍රයි කලා ඒත් හරි ගියේ නෑ...

    ReplyDelete
  9. නියමයිනේ මේ තියෙන්නෙ..... Google වලට බැන බැන හොයන්න හිතන් හිටියෙ.. දැන් ඒකත් ඔනෙ නෑනේ.... බලමුකො මේක හරි යයිද කියල.... මේ දවස්වල මම Hardware නෙ... දවස් දෙක තුනකින් බලමුකො.... ඈයත් මේක හොය හොය හිටියෙ.... තැන්කූ තැන්කූ..

    ReplyDelete
  10. තැංකූ වේවා! :)

    ReplyDelete
  11. එල එල පැන්ඩො දිගටම කරගෙන යන්න..............

    ReplyDelete
  12. බොහොම ස්තුති.තවත් පුලුවනම් මෙ වගේ පොස්ට් දාන්න.

    ReplyDelete
  13. Appreciate your work !!!

    But I think if you do developments frequently in your local machine, it is worth to have a mail server installed.
    I use XAMPP pack which has Mercury Mail Server integrated in it.
    Starting the mail server along with the web server(Apache in XAMPP...) you can send email to virtually anyone with no extra effort using the mail() function.(assuming you are connected to internet)

    ReplyDelete
  14. ස්තූතියි අදහස් දක්වන්න මොහොතක් ගත කරපු හැමොටම...ඕව් මධුරංග ඒ පැන්ඩම තමයි මේ..

    ReplyDelete
  15. ;) ටැංකූ වේවා :D

    ReplyDelete
  16. පැන්ඩ සහෝ...මට පොඩි ප්‍රශ්නයක්...පහල error එක එනව මේල් එක යවන්න බෑ...
    SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.
    විසඳුමක් දෙන්න පුලුවන්ද....

    ReplyDelete
  17. පොඩ්ඩක් බලන්න හරියට හොස්ට් නෙම් සහ පොර්ට් දුන්නද කියල.කනෙක්ට් ෆන්ශන් එක ඇතුලෙ දෙන්න හොදෙ.ජී මෙල් එකක් නෙද ඇඩ්‍රස් එක..යුස‍ර් නේම් පාස්වර්ඩ් තිතට හරිද

    ReplyDelete
  18. public function Connect($host, $port = 0, $tval = 30) {
    // set the error val to null so there is no confusion
    $host = "ssl//smtp.gmail.com";
    $port = 465;
    //465,587
    gamil accnt to yahoo p.wordz also ...ok
    php.ini ...ok
    මම email.php file එක phpmailer එක ඇතුලටම දාගත්ත
    code එක වෙනස් කලා මෙහෙම
    require("class.phpmailer.php");
    include("class.smtp.php");
    ......
    තවම කලින් error එකමයි....කොහොමහරි ගොඩදානව..smtp වල අවුලක් තියෙන්නෙ.....hlp එකක් ඕන ඔයාගෙන්....
    ආ තව එකක් googal වල හෙල්ප්වැක තැනක කියනව Did you set 'allow authentication' for the SMTP server?
    ලින්ක් එක https://mail.google.com/support/bin/answer.py?hl=en&answer=78775 ....

    ReplyDelete
  19. මම මේ දැනුත් මගෙ ෆයිල් එක රන් කලා යස අගෙට මේල් එක ගියා..වැම්ප් සර්වර් එකෙ අවුලක් නැ නෙද..localhost එක හරියට වැඩ කරන්නත් ඕනි නේද ?
    සමාවෙන්න සහො සදුදා තුන්වෙනි ආවුරුද්දෙ අවසාන විභාග පටන් ගන්නව..හොදටම බිසි..නැත්තං මම ඔක්කොම පැත්තක තියල මේක හොයන්න ගන්නව..සොරි

    ReplyDelete
  20. හරි හරි..ඔයා xam එක හොඳට කරන්න.නාපි ඊට පස්සෙ බලමු මගේ වැඩේ....All Da BEST කිව්ව.....:D

    ReplyDelete
  21. @ Chiran
    php.ini ෆයිල් එකේ openssl.dll කියන තැන කමෙන්ට් වෙලා ඇති.එකෙ මුල තියන ; ලකුණ අයිං කරල php.ini ෆයිල් එක සේව් කරන්න.වෙබ් සර්වරේ රීස්ටාර්ට් කරන්න.
    port 465 කියන්නේ ssl භාවිතාකරන පෝර්ට් එක.

    ReplyDelete
  22. This comment has been removed by a blog administrator.

    ReplyDelete
  23. Thank you very much. You save my lot of time dear...

    ReplyDelete

You don't need to be a blog member to post comments. You can comment as name/url or anonymous

Related Posts with Thumbnails