如何从客户端浏览器中运行的Angular Web应用程序发送邮件?
如何从客户端浏览器中运行的Angular Web应用程序发送邮件?
我目前正在开发一个内部项目,前端使用AngularJS,后端通过C# Web API查询数据。通过这个设置,我可以获得大部分所需功能,但是我想添加一个需要C#的功能,而且它并不是一个API调用:\n当用户点击一个按钮时,我想要弹出一个新的Outlook邮件,并预填收件人和主题字段。我还想预先包含附件。\n我以前在C#中使用类似于这些步骤完成过这个功能,但是我对AngularJS和SPA架构还不熟悉。有没有办法实现这个功能?C#代码放在解决方案中的哪里,如何将其与Angular连接起来?\n由于这是一个内部非面向客户的应用程序,可以假设所有用户都已安装Outlook。
问题的原因是作者想在一个在客户端浏览器中运行的Angular Web应用程序中发送邮件。作者通过邮件链接mailto
来解决这个问题,这样可以填充主题和收件人字段。然而,为了处理附件,作者在这里找到了一个建议,即将附件托管在网站上,并在mailto
的正文中放置一个下载链接。对于PDF文件,作者可以创建一个嵌入PDF的视图。
解决方法是使用mailto
链接来发送邮件,并在链接中指定主题和收件人。对于附件,作者将附件托管在网站上,并在邮件正文中放置一个下载链接,以便收件人可以下载附件。对于PDF文件,作者创建了一个嵌入式PDF的视图,以便在邮件中直接显示PDF文件。
这样,作者通过使用mailto
链接和托管附件来发送邮件,以及创建嵌入式PDF视图来解决了在Angular Web应用程序中发送邮件的问题。
在客户端浏览器中运行的Angular Web应用程序中如何发送邮件?
出现原因:
由于Web应用程序(不仅仅是Angular)中的本机代码在服务器上执行,我不认为直接实现你所要求的功能是可能的。Web应用程序被严格隔离,直接与本机应用程序进行交互是非常困难的。对于基本应用程序,我建议使用mailto
链接,因为它们将在用户的默认邮件应用程序中打开(一般是Outlook)。如果这还不够,考虑在页面上添加一个表单,用户可以提交该表单给服务器,然后由服务器代表用户发送邮件。
解决方法:
1. 使用mailto
链接调用用户的默认邮件应用程序:
Send Mail
当用户点击这个链接时,将会自动打开用户的默认邮件应用程序,并填充收件人字段。
2. 在页面上添加一个表单,用户可以填写邮件内容并提交给服务器:
当用户填写完表单并点击"Send Mail"按钮时,表单将被提交到服务器的"/sendEmail"路径,并由服务器代表用户发送邮件。
以上是在Angular Web应用程序中发送邮件的解决方法。通过使用mailto
链接或在页面上添加一个表单,我们可以实现在客户端浏览器中发送邮件的功能。