PHP中的联系表单:允许用户向我发送电子邮件

时间:2012-12-02 11:33:37

标签: php email

在我的网站上,我有一个联系表单,用户可以在其中报告错误或提交功能请求。表单包含主题消息

我希望表单直接通过PHPMailer或PHP的内置邮件功能向我发送电子邮件。

此处的问题是,在生成电子邮件时,发件人必须是我拥有的地址,而不是实际用户的电子邮件地址。原因很明显,因为我们不应该冒充他人。但是,我希望能够直接从我的收件箱中回复我的用户,这是我无法做到的,因为我无法使用他们的地址在脚本中给自己发送电子邮件。

然后构建联系表单的最佳方法是什么? 我能想到的唯一解决方法是将消息+发件人地址插入数据库,然后从那里手动读取....这是史诗般的麻烦。

我会很感激任何建议。

3 个答案:

答案 0 :(得分:3)

设置Reply-To电子邮件标题,这样您就会得到以下内容:

<?php
$headers = 'From: you@example.com' . "\r\n";
// Set the sender address as Reply-to below
$headers .= 'Reply-To: sender@example.com' . "\r\n";

mail('you@example.com', 'Subject here', 'The message goes here', $headers);
?>

这样您将成为发件人,但是当您点击邮件客户端中的回复按钮时,它将默认回复Reply-To标题中列出的地址。

答案 1 :(得分:0)

为什么中心必须是您拥有的地址?

SMTP不会禁止您提供用户提供的发件人电子邮件。只要SMTP服务器允许您从中继,它将为发件人和收件人带来任何价值。

另一种选择是发送电子邮件(contact-form@yourdomain.com)并将回复字段设置为用户的电子邮件地址。

答案 2 :(得分:0)

您可以使用以下代码从您拥有的地址接收电子邮件,但当您回复时,请转到用户的电子邮件

<?php
$to      = 'youremail@yourdomain.com';
$subject = 'the subject';
$message = 'message';
$headers = 'From: youremail@yourdomain.com' . "\r\n" .
'Reply-To: user@useremail.com' . "\r\n" .
mail($to, $subject, $message, $headers);
?>