Gửi email trong PHP

Gửi email trong PHP là 1 việc vô cùng đơn giản và dễ dàng. PHP đã cung cấp cho chúng ta một function gửi mail là

mail($to, $subject, $message, $additional_headers);

Việc của chúng ta là sử dụng nó, nhận các giá trị tương ứng mà user nhập vào, kiểm tra xem dữ liệu đó có hợp lệ hay không. Nếu hợp lệ thì cho phép Gửi, còn không thì bắt user nhập lại. Các bạn tham khảo code gửi email trong PHP mà mình viết ở bên dưới nhé!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Gửi email trong PHP</title>
</head>
<body>
<?php
/**
* @param string $eValue
* @return boolean
*/
function filterEmail($eValue)
{
// Thanh lọc những ký tự không mong muốn mà user nhập vào
$eValue = filter_var($eValue,FILTER_SANITIZE_EMAIL);

// Nếu địa chỉ email điền vào không đúng định dạng thì báo lỗi
if (filter_var($eValue,FILTER_VALIDATE_EMAIL)) return true;
else return false;
}

/** Kiểm tra giá trị email nhập vào
* Nếu email người gửi khác rỗng thì chúng ta sẽ đi kiểm tra xem email của
*  họ có chứa ký tự không mong muốn hay không?
* Nếu hợp lệ thì gửi đi và thông báo thành công.
* Nếu không thì giữ nguyên form và bắt user thao tác lại.
*/
if (isset($_REQUEST[’emailfrom’]))
{
$isValid = filterEmail($_REQUEST[’emailfrom’]);
if ($isValid==FALSE)
echo “Email người gửi không hợp lệ. Vui lòng nhập lại”;
else
{
$emailfrom = $_REQUEST[’emailfrom’];
$title = $_REQUEST[‘title’];
$content = $_REQUEST[‘content’];
mail(“luuvanphong@outlook.com”, $title, $content, $emailfrom);
echo “Chúng tôi đã nhận được ý kiến của bạn! Xin chân thành cám ơn!”;
}
}
else
{
// Sử dụng heredoc để hiển thị HTML form
echo <<<_EMAIL_
<form id=”frmEmail” method=”POST” action=”index.php”>
Hòm thư của bạn: <input type=”text” name=”emailfrom” style= “width:140px;” /><br />
Tiêu đề: <input type=”text” name=”title” style= “width:200px;” /><br />
Nội dung:<br />
<textarea name=”content” rows=”10″ cols=”50″></textarea><br />
<input type=”submit” name=”send” value=”Gửi” />
</form>
_EMAIL_;
}
?>
</body>
</html>

2 thoughts on “Gửi email trong PHP

  1. Mình làm như code mẫu nhưng khi run từ wamp thì nhận được ”
    Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()” và không có mail nào được gởi đi cả.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s