PHPMailer发送没有表单数据的邮件[重复]
Posted
技术标签:
【中文标题】PHPMailer发送没有表单数据的邮件[重复]【英文标题】:PHPMailer sending mail without form data [duplicate] 【发布时间】:2014-07-09 17:58:24 【问题描述】:我有一个用于联系页面的 css div html 表单,并希望在发送时通过电子邮件发送该表单。作为 php 的新手,我尝试了不同的示例,可以发送邮件,但无法在电子邮件中获取表单数据。
html代码
<div class="maincontent">
<div class="content">
<article class="topcontent">
<content>
<div id="form-main">
<div id="form-div">
<form method="post" enctype="text/plain" action="mail.php" class="form" id="form1">
<p class="name">
<input name="name" type="text" class="validate[required,custom[onlyLetter],length[0,100]] feedback-input" placeholder="Name" id="name" />
</p>
<p class="email">
<input name="email" type="text" class="validate[required,custom[email]] feedback-input" id="email" placeholder="Email" />
</p>
<p class="text">
<textarea name="text" class="validate[required,length[6,300]] feedback-input" id="comment" placeholder="Comment"></textarea>
</p>
<div class="submit">
<input type="submit" value="SEND" id="button-blue"/>
<div class="ease"></div>
</div>
</form>
</div>
</content>
</article>
</div>
</div>
PHP 邮件脚本
<?php
require("class.phpmailer.php");
$formcontent="From: $name \n Message: $text \n Email: $email";
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "localhost;"; // specify main and backup server
$mail->SMTPAuth = false; // turn on SMTP authentication
$mail->Username = "jswan"; // SMTP username
$mail->Password = "secret"; // SMTP password
$name = $_POST['name']; // contain name of person
$email = $_POST['email']; // Email address of sender
$message = $_POST['text']; // Your message
$mail->AddAddress('warren@.com', 'recipient email');
$mail->From = "noreply@.com";
$mail->FromName = "Contact Us Information";
$mail->Subject = "Website Contact Us Information";
$mail->Body = "Name:$name\n\nEmail:email\n\nComments:$body";
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(true); // set email format to HTML
if(!$mail->Send())
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
echo "Message has been sent";
?>
就像我说的,发送了邮件但没有表单信息。
谢谢
【问题讨论】:
你试过print_r()
-ing $_POST 变量看它是否包含任何东西吗?
删除 enctype="text/plain" 解决了这个问题。我现在如何以列表格式获取表单数据,例如:
【参考方案1】:
从表单标签中取出enctype="text/plain"
。
使用这个你无法获取发布的数据。
【讨论】:
哇!不知道这个 谢谢 :) 我也没有意识到这一点,一旦删除它就可以了。以上是关于PHPMailer发送没有表单数据的邮件[重复]的主要内容,如果未能解决你的问题,请参考以下文章