Thao tác với Email trong lập trình PHP

Trong thiết kế website, để website tương tác với người dùng thì MAIL là 1 vấn đề quan trọng. Hôm nay chúng ta sẽ cùng nghiên cứu vấn đề này
Phần I – Gửi email bằng PHP

Trong PHP có hai cách gửi mail: Gửi email trực tiếp bằng hàm mail (chạy trực tiếp trên máy chủ server) và gửi email thông qua một mail server khác (cách này phức tạp hơn so với cách trên vì ta phải kết nối tới máy kia và biết cách họat động của chùm giao thức SMTP).

1 – Gửi email thông qua hàm mail():

Để gửi email trực tiếp từ máy chủ, ta có thể sử dụng hàm mail () với cú pháp như sau:

mail (dia_chi_nhan,tieu_de,noi_dung,cac_tham_so_mo_rong_tuy_chon).

Ví dụ: 

<html>
<body>

<?php
if (isset($_REQUEST[’email’]))
//if “email” is filled out, send email
  {
  //send email
  $email = $_REQUEST[’email’] ; 
  $to = $_REQUEST[‘to’] ;
  $subject = $_REQUEST[‘subject’] ;
  $message = $_REQUEST[‘message’] ;
  mail( $to, “Subject: $subject”,$message” );
  echo “Thank you for using our mail form”;
  }
else
//if “email” is not filled out, display the form
  {
  echo “<form method=’post’ action=’phpmail.php’>
  Người gửi: <input name=’email’ type=’text’ /><br />
  Gửi tới: <input name=’to’ type=’text’ /><br />
  Tiêu đề: <input name=’subject’ type=’text’ /><br />
  Nội dung:<br />
  <textarea name=’message’ rows=’15’ cols=’40’>
  </textarea><br />
  <input type=’Gửi’ />
  </form>”;
  }
?>

</body>
</html>

2 – Kỹ thuật gửi email với phần Header mở rộng
Kỹ thuật này sẽ cho phép bạn đưa thêm một số thông tin vào phần Header của thông điệp email (Nếu bạn kiểm tra email sẽ có phần Header, trong đó ghi rất nhiều thông tin , chẳng hạn như địa chỉ IP xuất phát, qua những máy email nào, thời điểm…).

Ở đây chúng ta sẽ sử dụng phần tham số mở rộng.
Ví dụ:

$ThongTinMoRong=”From: info@$SERVER_NAME\r\n”
    .”Reply-To: webmaster@$SERVER_NAME\r\n”
    .”X-Mailer: PHP/” . phpversion();
mail($Email-Gui, $Email-Nhan, $Noi-Dung,$Thong-Tin-Mo-Rong);

3 – Kỹ thuật gửi email theo định dạng HTML.

Chú ý rằng ở chế độ mặc định, nội dung thông điệp được truyền tải đi dưới dạng văn bản thuần túy (plain text), và không thể hiện được các cấu trúc HTML thông thường. Để có thể đưa định dạng HTML vào mail, qua đó cho phép hiển thị hình ảnh, định dạng font chữ…, ta phải đưa thêm dòng sau đây vào phần header:

MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1

Ví dụ:

<?
/* recipients */
$to  = “LeTung <letung@thietkeso.vn>” . “, ” ; //note the comma
$to .= “PhamHung <phamhung@thietkeso.vn>”;

/* subject */
$subject = “Birthday Reminders for August”;

/* message */
$message = ‘
<html>
<head>
 <title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
 <tr>
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
 </tr>
 <tr>
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
 </tr>
 <tr>
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
 </tr>
</table>
</body>
</html>
‘;

/* To send HTML mail, you can set the Content-type header. */
$headers  = “MIME-Version: 1.0\r\n”;
$headers .= “Content-type: text/html; charset=iso-8859-1\r\n”;

/* additional headers */
$headers .= “From: Birthday Reminder <birthday@example.com>\r\n”;

$headers .= “Cc: birthdayarchive@example.com\r\n”;
$headers .= “Bcc: birthdaycheck@example.com\r\n”;

/* and now mail it */
mail($to, $subject, $message, $headers);
?>

FOLLOW US

Leave a Reply

Your email address will not be published. Required fields are marked *