Send email
| mail() sketch | |
| Headers | |
| HTML parts note | |
| Queue, do not block |
mail() sketch
Function mail hands a message to the local mail system. Pass the recipient, the subject, and a plain text body.
It returns true when the message was accepted for delivery. Acceptance is not a proof that the inbox received it.
mail("user@example.com", "Hello", "Welcome aboard"); echo "sent";
Headers
Headers set the sender, the reply address, and the content type. Build them as one string with carriage return plus line feed between lines.
Never copy user input into headers without strict validation. A newline inside input can inject extra headers.
$headers = "From: hello@example.com\r\nContent-Type: text/plain; charset=UTF-8"; mail("user@example.com", "Hello", "Body text", $headers); echo "sent";
HTML parts note
HTML mail needs a matching content type and escaped dynamic values. Keep the layout simple so many clients render it the same way.
Escape names and links before they enter the HTML body. Plain text remains the safest default for system messages.
$body = "<p>Hello</p>"; echo $body;
Queue, do not block
Sending mail can take seconds, so web requests should only queue the job. A background worker sends the queued messages later.
Append the job to a queue file or table during the request. Return a fast response and let the worker handle retries.
file_put_contents("queue.txt", $job . "\n", FILE_APPEND); echo "queued";
Next: CLI applications
Article author: Arthur Isaev