我试图让应用程序在点击按钮时发送电子邮件。我尝试使用isset函数来做到这一点。但我的代码不能很好地运作。我如何解决它?
演示如下:
<!-- <button name="sendemail">send</button> -->
<input type="submit" value="send"/>
<?php
if(isset($_POST['Submit'])){
?>
<?php
// multiple recipients
// $to = 'aidan@example.com' . ', ';
// $to .= 'wez@example.com';
$to="example@outlook.com";
// subject
$subject = 'test01';
// message
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
</body>
</html>
';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
mail($to, $subject, $message, $headers);
}
?>
答案 0 :(得分:0)
您需要为name
元素设置input
属性,并且input
元素需要在表单中。此外,$_POST['submit']
应为小写以保持一致。
您还应该检查mail()
是否已成功发送。 <{1}}将在发送时返回mail()
,如果未发送则返回true
。
只是一个注释,实际发送的邮件将取决于您的托管/服务器,即使它返回false
,也不一定意味着邮件已发送。
在http://php.net/manual/en/function.mail.php了解true
的更多信息。
以下代码应该有效:
mail()
希望这会有所帮助。谢谢!
答案 1 :(得分:0)
点击发送电子邮件按钮
,您可以使用以下代码触发电子邮件<form action="" method="post">
<input type="submit" value="Send details to college" />
<input type="hidden" name="button_pressed" value="1" />
</form>
<?php
if(isset($_POST['button_pressed']))
{
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
echo 'Email Sent.';
}
?>
答案 2 :(得分:0)
这里有几点需要解决。首先,您的输入按钮不会执行任何操作,因为它不是表单的一部分。因此,您必须使用某种JavaScript或仅使用HTML表单来提交按钮,因此我们可以使用PHP处理它。一个简单的表格如下所示。注意metohd="POST"
,这允许我们稍后在PHP中从$_POST
- 数组中收集信息(默认表单设置为使用GET)。
<form method="POST">
<input type="submit" name="submit" value="Send!" />
</form>
此表单将通过POST阵列将数据发送到它所放置的同一页面,因此也将PHP放在这里。
其次,您的提交按钮中没有name
属性,并且由于PHP使用名称而不是ID(如JavaScript),因此您需要添加此属性。这可以在上面的代码片段中看到。
此外,您永远不会检查邮件是否实际发送过。你永远不应该把任何事情视为理所当然。
<?php
if (isset($_POST['submit'])) {
/* add headers, messages and such here */
// Check if the mail is being sent from the server
if (mail($to, $subject, $message, $headers)) [
// Mail was sent! Great!
} else {
// It failed sending the mail
}
}
?>