在我的网站上,我有一个联系表单,用户可以在其中报告错误或提交功能请求。表单包含主题和消息。
我希望表单直接通过PHPMailer或PHP的内置邮件功能向我发送电子邮件。
此处的问题是,在生成电子邮件时,发件人必须是我拥有的地址,而不是实际用户的电子邮件地址。原因很明显,因为我们不应该冒充他人。但是,我希望能够直接从我的收件箱中回复我的用户,这是我无法做到的,因为我无法使用他们的地址在脚本中给自己发送电子邮件。
然后构建联系表单的最佳方法是什么? 我能想到的唯一解决方法是将消息+发件人地址插入数据库,然后从那里手动读取....这是史诗般的麻烦。
我会很感激任何建议。
答案 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);
?>