Sử dụng PHP để gửi nội dung form tới địa chỉ email chỉ ra là công việc dễ dàng. Ở phần này, bạn sẽ
học làm cách nào làm những cái sau:
+ Điều chỉnh file cấu hình PHP để bạn có thể gửi mail.
+ Tạo và gửi một form thông tin phản hồi (feedback form) đơn giản
+ Sử dụng biến $PHP_SELF để tạo một feedback form với các thông báo lỗi custom
Sử dụng một SMTP server
SMTP là một viết tắt của Simple Mail Transfer Protocol, và một SMTP server là một máy cái gửi mail đi, giống
như một Web server là một máy cái hiển thị các trang web khi được yêu cầu. Một SMTP server đôi
khi cũng được nhắc đến như là một máy chủ mail đi ra. Trên Linux/UNIX, Sendmail và Qmail là
các gói thông dụng. Trên Windows, dịch vụ SMTP trong Windows NT Service Pack, hay dịch vụ tích
hợp vào hệ điều hành Windows 2000, thường được sử dụng.
Tuy nhiên, nếu bạn đã cài đặt Apache, PHP và MySQL như là phần của một môi trường phát triển trên
máy cá nhân của bạn, bạn có thể không có SMTP chạy địa phương. Nếu đó là trường hợp, bạn có thể truy
cập một máy chủ mail đi ra cái có thể đã có sẵn cho bạn.
Các cài đặt được mong đợi
Nếu bạn đang sử dụng PHP như một phần của một gói hosting ảo của ISP, SMTP server đã được cài đặt
trên máy đó, và PHP nên được cấu hình đúng đắn để truy cập nó.
Nếu máy của bạn kết nối với Internet qua một kết nối dial-up, DSL, cáp quang hay dạng truy cập khác, bạn
có thể sử dụng máy chủ mail đi ra của ISP. Ví dụ, nếu máy phát triển của bạn là một Windows
box với một kết nối DSL tới Internet, bạn có thể sử dụng thứ gì đó như mail.yourprovider.com
như máy chủ mail đi ra của bạn. Quy tắc chính là rằng bất kể bạn cấu hình gì trong email client
của bạn (Eudora, Outlook, Netscape Mail…vv..) thì máy chủ mail đi ra của bạn cũng có chức năng
bên trong PHP code như SMTP server của bạn. Mẹo là làm PHP nhận thức được thực tế nhỏ này.
Các thay đổi liên quan đến SMTP trong php.ini
Trong file cấu hình chủ php.ini, có một vài mã lệnh cái cần được thiết lập để rằng hàm mail() làm việc
đúng đắn. Mở php.ini với một text editor và tìm kiếm những dòng này:
[mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
sendmail_from = me@localhost.com
; For Unix only. You may supply arguments as well (default: ‘sendmail -t -i’).
;sendmail_path =
Nếu bạn đang sử dụng Windows, bạn sẽ cần điều chỉnh hai dòng lệnh đầu tiên, SMTP và sendmail_from.
Nếu bạn có kế hoạch sử dụng máy chủ mail đi ra của ISP của bạn (trong ví dụ này, giả sử nó được gọi là
DSLProvider.net), nhập vào trong php.ini sẽ trông như thế này:
SMTP = mail.dslprovider.net
Mã lệnh cấu hình thứ hai là sendmail_from, và đây là địa chỉ email được sử dụng trong header From của email
gửi. Nó có thể bị ghi đè trong bản thân mail script nhưng thường hoạt động như giá trị mặc định. Ví dụ:
sendmail_from = youraddress@yourdomain.com
Tất nhiên, thay thế youraddress@yourdomain.com với địa chỉ của bản thân bạn.
Nếu bạn đang trên Linux hay một dòng UNIX, sendmail_path là tất cả cái bạn cần để quan tâm, và nó trông
là thứ gì đó như thế này:
sendmail_path = /usr/sbin/sendmail
Hay, nếu bạn đang sử dụng Qmail:
sendmail_path = /var/qmail/bin/sendmail
Trong mã lệnh sendmail_path, bạn cũng có thể thiết lập các cờ cấu hình để chỉ ra các tùy chọn xếp hàng hay
để công khai thiết lập Return-Path header, như:
sendmail_path = /usr/sbin/sendmail -t -fyou@yourdomain.com
Sau khi thực hiện các thay đổi với file php.ini, khởi động lại Web server và sử dụng hàm phpinfo()
để thẩm định rằng các thay đổi đã được thực hiện. Khi cái đó đã được thực hiện, bạn sẵn sàng gửi một vài email
sử dụng PHP.