如何使用文本框将 HTML 表单的副本发送到发件人的电子邮件?

Posted

技术标签:

【中文标题】如何使用文本框将 HTML 表单的副本发送到发件人的电子邮件?【英文标题】:How can I send a copy of an HTML form to the sender's email using a text box? 【发布时间】:2020-12-19 15:51:06 【问题描述】:

我的代码和这里一样:How to send copy of php / html form to sender's email?

我希望当我将电子邮件地址写入文本框时,我会收到表单副本到我写的电子邮件。

我已经替换了 HTML 代码:

<label><input type="checkbox" name="sendcopy" value="Yes" checked/>Send copy to your mail</label>

<label><b>Write your email here:</b><div style="width: 33%;"><input class="contact-input"style="width: 500px;" name="sendcopy"><br/></div></label>

我已经替换了 PHP 代码:

$sendCopy = isset($_POST['sendcopy']);

$sendCopy = $_POST["sendcopy"];

我替换了 PHP 代码:

if ($sendCopy) 
    $sentToSender = mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head);

if (mail($sendCopy, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head))

现在,当我将电子邮件地址写入文本框时,我会将表单的副本复制到我写的电子邮件中,但是当我将文本框留空时,表单的提交会以错误结束。

所以,重要的是,当表单发件人将他/她的电子邮件写入文本框时,他/她将获得表单的副本到他/她的电子邮件。当您将文本框留空时,表单将仅发送到收件人电子邮件。我该怎么做?

【问题讨论】:

"我已经替换了 PHP 代码:$sendCopy = isset($_POST['sendcopy']);" - 我已经告诉过你会返回布尔值。这不是如何使用它。 【参考方案1】:

我已经替换了 PHP 代码:

$sendCopy = isset($_POST['sendcopy']);

这将始终被视为“设置”并返回布尔值。

当您将文本框留空时,表单将仅发送到收件人电子邮件。我该怎么做?

您希望使用ternary operator。

来自手册:

// 示例用法:三元运算符 $action = (empty($_POST['action'])) ? '默认' : $_POST['action'];

所以你的尝试将四舍五入:

$action = (isset($_POST['sendcopy'])) ? 'default' : $_POST['sendcopy'];

default 替换为您希望的默认值。

旁注:在这种情况下,isset() 适用于单选按钮和复选框。如果您不想要空字段,除了单选按钮和复选框之外,您还可以使用 empty() 进行文本输入等。

【讨论】:

感谢您的回答!对不起,我是 *** 的初学者,当我看到我的问题已经结束时,我不知道我可以为你回答。我用复选框和 jquery 解决了我的代码问题,当我选中复选框时会出现电子邮件框。但是将来我知道我可以回答评论,尽管我的问题已经结束。为您提供良好的编码时刻,感谢您的帮助!

以上是关于如何使用文本框将 HTML 表单的副本发送到发件人的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

如何添加php脚本来转发表单的副本

springboot自定义文本/附件/html模板邮件发送

Angular 8:将表单数据作为服务发送到另一个组件

后缀:将每封电子邮件的副本发送到给定的电子邮件地址

PHP 电子邮件表单 - 定义发件人

从电子邮件文本中解析“发件人”地址