【发布时间】:2017-02-19 14:45:13
【问题描述】:
如何在网页中创建一个按钮,该按钮打开 Outlook 应用程序,并附有该网页的截图附带的撰写邮件(新邮件)选项?
【问题讨论】:
-
我不知道如何将屏幕截图添加到邮件中,但要打开 Outlook,请使用这个,
<a href="mailto:mail@mail.com"></a>
如何在网页中创建一个按钮,该按钮打开 Outlook 应用程序,并附有该网页的截图附带的撰写邮件(新邮件)选项?
【问题讨论】:
<a href="mailto:mail@mail.com"></a>
您可以使用以下说明的 mailto 链接
Mailto 链接是一种 HTML 链接,用于激活计算机上的默认邮件客户端以发送电子邮件。 Web 浏览器需要在他的计算机上安装默认的电子邮件客户端软件才能激活电子邮件客户端。 例如,如果您将 Microsoft Outlook 作为默认邮件客户端,则按 mailto 链接将打开一个新的邮件窗口。
<a href="mailto:vinoth@email.com">Send Mail</a>
如果你想把这个添加到按钮,你可以试试下面的html
<button onclick="location.href='mailto:vinoth@email.com';">Send Mail</button>
关于你第二个要求截图并附上邮件,请参考下面的链接,我认为它已经回答了
【讨论】:
只需一行 html 代码即可轻松实现。
<a href="mailto:someone@something.com?subject=your title&body=TThe message">
<button id="btnOutlook">Go to Outlook</button>
</a>
这也可以扩展为包含其他字段,例如
<a href="mailto:address..?subject=subject...&body=anything...&cc=ccemailaddress@something.com&bcc=bcc@something.com">
<button id="btnOutlook">...</button>
</a>
这是一种添加链接的便捷方法,让用户无需任何服务器端编程语言即可与您联系。
但还要注意,Mailto仅在访问者在其系统上配置了电子邮件客户端(例如 Outlook Express)时才起作用。
为了根据需要附加屏幕截图,建议按照here 所述寻求解决方案。
或者也可以使用以下使用Javascript和HTML5的方法
在 HTML 文件中 - 定义标记和脚本
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="html2canvas.js"></script>
<script>
function take_screenshot()
{
html2canvas(document.body, { onrendered: function(canvas)
{
var img = canvas.toDataURL()
$.post("save_screenshot.php", {data: img}, functio(file){
window.location.href = "save_screenshot.php?file="+ file
});
}
});
}
</script>
<body>
<div id="wrapper">
<div id="screenshot_div">
<button type="button" onclick="take_screenshot()">buttonText</button>
</div>
</div>
</body>
制作一个PHP文件来保存截图
<?php
if($_GET['file'])
{
$file=$_GET['file'];
if (file_exists($file))
{
header('Content-Description: File Transfer');
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
unlink($file);
exit;
}
}
if($_POST['data'])
{
$data = $_POST['data'];
$file = md5(uniqid()) . '.png';
$uri = substr($data,strpos($data,",")+1);
file_put_contents('./'.$file, base64_decode($uri));
echo $file;
exit();
}
?>
由于不确定您的确切程序结构,因此仅将其用作指导。要附加存储的图像,请使用我上面提到的附加图像的方法。有关这方面的更多信息,您可以参考this。
希望对你有帮助
【讨论】:
With blank to: field ?那么用户在重定向到邮件程序后是否输入了他/她想要的to: 地址?