PHP电子邮件表单脚本

时间:2016-04-09 13:35:18

标签: php forms email

您好我在博客上找到了这个PHP脚本

<?php
if(isset($_POST['submit'])) {

$to = "youremail@gmail.com";
$subject = "Forms";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];

$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

echo "Data has been submitted to $to!";
mail($to, $subject, $body);

} else {

echo "blarg!";

}
?>

在HTML中执行以下操作时运行

<form method="POST" action="mailer.php">
Your Name<br>
<input type="text" name="name" size="19"><br>
<br>
Your Email<br>
<input type="text" name="email" size="19"><br>
<br>
Message<br>
<textarea rows="9" name="message" cols="30"></textarea>
<br>
<br>
<input type="submit" value="Submit" id="submitBTN" name="submit">
</form>

根据博客,我所要做的就是将html和php文件放到我的网络服务器上(我没有,所以我无法测试)。它会向$ to中指定的电子邮件发送电子邮件吗?我从来没有使用过PHP,但是如果能够在网络上发送电子邮件,它就没有多大意义。感谢您的解释/如果这个脚本可以直接使用!

3 个答案:

答案 0 :(得分:1)

理论上这应该可行,但您必须配置PHP才能使用您的电子邮件服务器。我建议使用像PHPMailer之类的东西来发送电子邮件,这就是我一直以来所做的事情。 PHPMailer允许您指定您的IMAP / POP3电子邮件服务器主机,用户名和&amp;密码和电子邮件端口,与您的电子邮件客户端相同。

以下是link有关在PHPMailer中使用Gmail的信息。

此片段(摘自PHPMailer自述文件)显示了如何配置服务器:

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'user@example.com';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

现在,您可以配置电子邮件来源的标题信息以及电子邮件的目的地:

$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

您甚至可以在电子邮件中添加附件:

$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

最后,我们将主题和正文放入电子邮件中:

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

现在,我们发送电子邮件:

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

答案 1 :(得分:0)

您需要在服务器上设置邮件服务器才能发送电子邮件。

不知道在哪里需要指定这个,但PHP要使用..

看看这里:php mail setup in xampp

(链接中提到的Xampp是一个充当服务器的程序,以便人们可以在线查看您的网页)

Xampp:https://www.apachefriends.org/index.html

答案 2 :(得分:0)

很久以前我做了同样的任务。 我通过XAMPP(php和apache)和gmail完成了这个。 在这里,您可以找到video并附上完整的解释。