我买了一个引导主题只是为了制作一个简单的网站。它上面有一个联系表格,主题创建者说要确保你的主机让你使用php。我问我的主人,他们说:
"您需要在表单中添加电子邮件身份验证。
在cpanel中创建一个用于表单的电子邮件地址,然后使用用于验证从form。
http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm"
我在cpanel中创建了电子邮件,但不幸的是,我对下一步的了解还不够。我希望有人能帮我编写代码,让这份表格正常工作。
这是完整的email.php代码:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = "Message";
$body = "From $name, $email, 'n'n$message";
$to = "myemail@gmail.com";
mail($to, $subject, $body);
?>
有什么简单的东西可以添加到其中以验证并使表单工作吗?
更新答案:
您可以将email.php / html
代码编辑为以下内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Send email example</title>
</head>
<body>
<form method="post">
<input type="text" name="sender_email" placeholder="Senders email address">
<input type="text" name="receiver_email" placeholder="Receivers email address">
<input type="text" name="subject" placeholder="Subject">
<textarea name="message" placeholder="Message"></textarea>
<button type="submit">Send email</button>
</form>
</body>
</html>
<?php
require_once('send_email_class.php');
if(!empty($_POST)){
$sender_email = $_POST['sender_email'];
$receiver_email = $_POST['receiver_email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$send_email = new send_email_class($sender_email, $receiver_email, $subject, $message);
$send_email_response = $send_email->send_email();
echo $send_email_response;
}
?>
并将以下代码作为名为:send_email_class.php
的文件上传到您的Web服务器。
<?php
class send_email_class {
// Class constructor storing variables
function __construct($sender, $receiver, $subject, $message){
$this->receiver = $receiver;
$this->subject = $subject;
$this->message = $message;
$this->header = 'From: ' . $sender . ''r'n';
}
// Function to send the email
function send_email(){
if(mail($this->receiver, $this->subject, $this->message, $this->headers)){
return 'Mail sent.';
}else{
return 'Unable to send mail.';
}
}
}
?>
当然,您不必从form
中输入所有这些信息,您可以存储一些信息,比如在PHP代码中固定的$sender_email
变量。
但这取决于你。希望这能有所帮助。
编辑:
请将email.php
的内容替换为以下内容:
<?php
class email{
// Class constructor storing variables
function __construct($sender_email, $sender_name, $message){
$this->sender = $sender_email;
$this->sender_name = $sender_name;
$this->message = $message;
$this->receiver = 'changeme@email.com';
$this->subject = 'Email from: ' . $sender_name;
$this->header = 'From: ' . $sender_email . ''r'n';
}
// Function to send the email
function send_email(){
if(mail($this->receiver, $this->subject, $this->message, $this->header)){
return 'Thank you ' . $this->sender_name . ' for sending the email containing the following message: ' . $this->message;
}else{
return 'Sorry ' . $this->sender_name . ' a error occured, please try again.';
}
}
}
if(!empty($_POST)){
$sender_email = $_POST['email'];
$sender_name = $_POST['name'];
$message = $_POST['message'];
$send_email = new email($sender_email, $sender_name, $message);
$send_email_response = $send_email->send_email();
echo $send_email_response;
}
?>
并编辑以下代码行:$this->receiver = 'changeme@email.com';
最终答案:
在收到文件后,修复很容易,ajax一直在处理它自己。
mail.php内容:
<?php
$receiver = 'xxxxx@gmail.com';
$subject = 'Email from: ' . $_POST['name'];
$message = $_POST['message'];
$header = 'From: ' . $_POST['email'];
mail($receiver, $subject, $message, $header);
?>