【问题标题】:how to create a html button that opens outlook application?如何创建一个打开 Outlook 应用程序的 html 按钮?
【发布时间】:2017-02-19 14:45:13
【问题描述】:

如何在网页中创建一个按钮,该按钮打开 Outlook 应用程序,并附有该网页的截图附带的撰写邮件(新邮件)选项?

【问题讨论】:

标签: php html css


【解决方案1】:

您可以使用以下说明的 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>

关于你第二个要求截图并附上邮件,请参考下面的链接,我认为它已经回答了

How to screenshot website in JavaScript client-side

【讨论】:

  • 谢谢,但我知道这个选项。我想知道如何将其添加到按钮并附上屏幕截图
  • 我提供了一个与截图问题相关的链接。希望有帮助!!
  • 这里我不是在谈论客户端。我只想截取我自己的浏览器屏幕截图并将其附加到新邮件中。
【解决方案2】:

只需一行 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

希望对你有帮助

【讨论】:

  • 谢谢 Tara,我不希望在“to:”字段中预先附加任何邮件 ID。我想要的只是创建一个按钮,可以打开一个新的 Outlook 邮件,并附上该网页的屏幕截图。
  • 在这种情况下,您是否在打开邮件应用程序之前(即点击按钮之前)选择了附件?还是您希望附加的自动拍摄?
  • 不,我实际上没有选择。我希望截取屏幕截图并附上带有空白“收件人:”字段的新邮件
  • With blank to: field ?那么用户在重定向到邮件程序后是否输入了他/她想要的to: 地址?
  • 为了获得网页的屏幕截图,您还需要合并 Javascript。我已将其余详细信息添加到上面的答案中。
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2021-12-22
  • 1970-01-01
  • 2015-09-06
  • 2015-04-14
  • 2021-08-11
相关资源
最近更新 更多