是否可以在 PHP 中准备一封电子邮件(发件人、收件人、主题、正文、附件),而不是直接使用 PHP 发送,而是使用客户的电子邮件程序(Thunderbird / Outlook / ...)打开它?
我的上下文是:
- 在表单中,用户选择“收件人”联系人和要发送的文件(正文是预定义的文本)
- 在提交时,我希望准备好的电子邮件显示在他最喜欢的邮件客户端中,以便他可以修改它(添加抄送,修改正文,...)
如果可能,该怎么做?
我会做这样的事情:
mailto:
方案添加变量。例如,在 PHP 中是这样的:
if(isset($_POST['send_mail']))
{
$to = $_POST['email_to'];
$subject = $_POST['email_subject'];
$body = 'This would be your defined body...';
// Now prepare the URL and present it to the user:
$url = 'mailto:'.$to.'?subject='.rawurlencode($subject).'&body='.rawurlencode($body);
echo '<a href="'.$url.'" title="Send Email Now">Send Email</a>';
// A boolean value to hide the form
// Necessary logic would need to be implemented on the page for this
$show_form = false;
}
您的表单可能如下所示:
<form method="post">
<label for="select_email_to">Recipient:</label>
<select name="email_to" id="select_email_to">
<option value="someone@example.com">John Doe</option>
<option value="someone.else@example.com">Jane Doe</option>
<otion value="a.n.other@example.com">Foo Bar</otion>
</select>
<label for="input_subject">Subject</label>
<input type="text" name="subject" id="input_subject" />
<input type="submit" name="send_mail" value="Prepare Email" />
</form>
如果您需要包含文件,我会在提交表单时将其上传到服务器,然后在电子邮件正文中包含指向上传文件的链接。
mailto: URL 方案显示了如何创建指向新电子邮件的链接。浏览器/操作系统将在电子邮件客户端中打开此电子邮件。
谢谢大家的回答。
不幸的是(实际上并不令人惊讶),不可能将附件数据放入 mailto 链接(duh)!
然后有2个解决方案:
干杯!