Katika somo hili utajifunza jinsi ya kutuma email kwa kutumia email() function ya PHP. Hii ni njia rahisi zaidi ya kutuma email. Ila hufanya kazi kwenye hosting.
KUTUMA EMAIL:
Katika somo hili tunakqenda kujifunza jinsi ya kutuma email kwa kutumia php. Kuna njia kama tatu za kutuma email kwa kutumia php. Ila katika somo hili .nitakufundisha njia moja ambayo ni kwa kutumai mail().
Njia hii ni nyepesi, ila itahitaji uwe umeshahost. Haifanyikazi kwenye localhost. Hivyo hakikisha unahost faili lako live ndipo liweze kufanya kazi.
Function hii ina sehemu kuu tano yaani parameta 5 ambazo ni:-
To
From
Header
Message
Subject
To hii itabeba email ya mpokeaji wa hiyo email. From hutumika kubeba email ya mtumaji. Header hii hubeba meta information.kama wapi ukumbe umetoka, na wapi utaweza ku reply. Massage hapa ndipo ambapo utaandika meseji yako. Subject hubeba kicha cha habari.
Mfano:
mail($to,$subject,$message, $headers)
Wacha tuone jinsi ya kutuma plain text email:
<?php
$from = "non-reply@bongoclass.com";
$to = "josh@example.com";
$subject = "greetings from Bongoclass";
$message = "haloo karibu bongoclass";
$headers = "From:" . $from;
if(mail($to,$subject,$message, $headers)) {
echo "Email imetumwa";
} else {
echo "Email imeshindwa kwenda";
}
?>
Hapo kwenye josh@example.com utaweka emaili ya unayemtumia na hapo kwenye non-reply@bongoclass.com utaweka emaili ya mtumaji. Nimrtumia if() ili kcheki kama ujumbe umetumwa ama laa. Kama umetumwa basi italeta ujumbe kuwa email imetuwa.
Jinsi ya kutuma html
Sasa kama unataka kuboresha muonekano wa meseji yako jinsi itakavyoonekana na ukataka kutumia style, wama kutumia html hapa nitakwenda kukujuza. Html zitatakiw akukaa hapo kwenye ujumbe. Ila changamoto ni kuwa kwa code zetu hapo juu utatuma html file kama text file hivyo haitakuwa na muonekano wa ujumbe bali ni code.
Ili kutatuwa tatizo hilo tutatakiwa kuongeza metadata info kwenye header. Tutakwenda kutumia utf-8. $headers = "From:" . $from .
"Content-type:text/html;charset=UTF-8" . " ";
Kisha tutaweka html code kwenye message. Hivyo faili letu litaonekana hivi:-
<?php
$from = "non-reply@bongoclass.com";
$to = "josh@example.com";
$subject = "greetings from Bongoclass";
$message = "<html>
<head>
<title>Karibu Bongoclass</title>
</head>
<body>
<h1>tunakutakia siku njema</h1>
<table cellspacing="0" style="border: 2px dashed #FB4314; width: 100%;">
<tr>
<th>Web:</th><td>Bongoclass</td>
</tr>
<tr style="background-color: #e0e0e0;">
<th>Email:</th><td>mafunzo@bongoclass.com</td>
</tr>
<tr>
<th>url:</th><td><a href="http://www.bongoclass.com">www.bongoclass.com</a></td>
</tr>
</table>
</body>
</html>";
$headers = "From:" . $from ." ".
"Content-type:text/html;charset=UTF-8";
if(mail($to,$subject,$message, $headers)) {
echo "Email imetumwa";
} else {
echo "Email imeshindwa kwenda";
}
?>
2. Kutuma ujumbe kutoka kwenye html file
Sasa endapo ujumbe wako upo kwenye faili la html, na unataka kutuma faili kama lilivyo ili huko ambape maudhui ya faili hilo. Kufanya hivi tutatumia zile function za mafaili kama tulivyojifunza kwenye masomo yaliotangulia.
Sasa tutatengeneza html file kisha tutaliita mail.html
mail.html
<html>
<head>
<title>Karibu Bongoclass</title>
</head>
<body>
<h1>tunakutakia siku njema</h1>
<table cellspacing="0" style="border: 2px dashed #FB4314; width: 100%;">
<tr>
<th>Web:</th><td>Bongoclass</td>
</tr>
<tr style="background-color: #e0e0e0;">
<th>Email:</th><td>mafunzo@bongoclass.com</td>
</tr>
<tr>
<th>url:</th><td><a href="http://www.bongoclass.com">www.bongoclass.com</a></td>
</tr>
</table>
</body>
</html>
Tutatumia foprn() ili kufunguwa file, kisha fread() ili kusoma faili kisha filesize() ili kupata ukubwa wa faili tuweze kulisoma lote. Hivyo code zitakuwa hivi:-
<?php
$file = fopen("mail.html", "r") or die("Unable to open file!");
$from = "non-reply@bongoclass.com";
$to = "josh@example.com";
$subject = "greetings from Bongoclass";
$message = fread($file,filesize("mail.html"));
$headers = "From:" . $from ." ".
"Content-type:text/html;charset=UTF-8";
if(mail($to,$subject,$message, $headers)) {
echo "Email imetumwa";
} else {
echo "Email imeshindwa kwenda";
}
?>
Mpaka kufika hapa tumemaliza somo letu la kutuma Email. Muendelezo wa somo hili utaupata kwenye course ya Advanced php. Kabla ya kufunga somo wacha nikupe bonus. Nakuwekea code za kutuma attachment, mfano unataka kutuma email yenye pdf. Hapo kwenye jina-la-faili.pdf weka jina la faili unalotuma.
Code hizi nimezitoa kwnye web hii https://code-boxx.com/send-attachment-php-mail/ wakati nilipokuwa naandaa somo. Kwa kuwa sikupanga kufundisha kipengele hiki, ila kwa kuwa natambuwa umuhimu wake, ndio maana nikaamuwa kukuletea code hizo huwenda zikakusaidi.
<?php
// (A) EMAIL SETTINGS
$mailTo = "example@gmail.com";
$mailSubject = "Test Attachment";
$mailMessage = "<strong>Test Message</strong>";
$mailAttach = "jina-la-faili.pdf";
// (B) GENERATE RANDOM BOUNDARY TO SEPARATE MESSAGE & ATTACHMENTS
// https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
$mailBoundary = md5(time());
$mailHead = implode(" ", [
"MIME-Version: 1.0",
"Content-Type: multipart/mixed; boundary="$mailBoundary""
]);
// (C) DEFINE THE EMAIL MESSAGE
$mailBody = implode(" ", [
"--$mailBoundary",
"Content-type: text/html; charset=utf-8",
"",
$mailMessage
]);
// (D) MANUALLY ENCODE & ATTACH THE FILE
$mailBody .= implode(" ", [
"",
"--$mailBoundary",
"Content-Type: application/octet-stream; name="". basename($mailAttach) . """,
"Content-Transfer-Encoding: base64",
"Content-Disposition: attachment",
"",
chunk_split(base64_encode(file_get_contents($mailAttach))),
"--$mailBoundary--"
]);
// (E) SEND
echo mail($mailTo, $mailSubject, $mailBody, $mailHead)
? "OK" : "ERROR" ;
NB: unaweza kutumia html form kuandika ujumbe unaotaka kutuma, kisha function ya mail() ikatumika kutuma taarifa hizo.
MWISHO:
Tukutane somo linalofuata ambalo tutajifunza jinsi ya kutuma sms kwa kutumia php. Somo hili ni mujimu kwa wale ambao wanataka kutengeneza OTP. somo la kutuma email na somo lijalo ni masomo muhimu kwa ambao wanataka kujuwa jinsi ya kutuma email kwa ajili ya ku rcover password ama kutuma OTP
Je! umeipenda hii post?
Ndio Hapana Save post
Imeandikwa na Rajabu Terehe 2023-10-19 Download PDF Share on facebook WhatsApp