PHP 內建 mail() 函數可發送簡單郵件。本文示範基本表單提交與郵件發送流程。
email.html<html>
<head><title>Simple Send Mail</title></head>
<body>
<h1>Mail Form</h1>
<form name="form1" method="post" action="mail.php">
<table>
<tr><td><b>To</b></td><td><input type="text" name="mailto" size="35"></td></tr>
<tr><td><b>Subject</b></td><td><input type="text" name="mailsubject" size="35"></td></tr>
<tr><td><b>Message</b></td><td><textarea name="mailbody" cols="50" rows="7"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="Submit" value="Send"></td></tr>
</table>
</form>
</body>
</html>
mail.php<?php
$mailto = $_POST['mailto'] ?? '';
$subject = $_POST['mailsubject'] ?? '';
$body = $_POST['mailbody'] ?? '';
if (empty($mailto)) {
die("收件人不可為空!");
}
$result = mail($mailto, $subject, $body);
if ($result) {
echo "郵件發送成功!";
} else {
echo "郵件發送失敗,請檢查郵件伺服器設定。";
}
?>
php.ini:SMTP、smtp_port(Windows)、sendmail_path(Linux)。postfix 或 sendmail:yum install postfix / apt install postfix。composer require phpmailer/phpmailer
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'your@gmail.com';
$mail->Password = 'app_password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('your@gmail.com', 'Your Name');
$mail->addAddress($mailto);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->send();
echo '郵件已發送';
} catch (Exception $e) {
echo "發送失敗: {$mail->ErrorInfo}";
}
?>