【问题标题】:Can I use JavaScript to create a client side email?我可以使用 JavaScript 创建客户端电子邮件吗?
【发布时间】:2010-09-05 16:12:07
【问题描述】:

我想创建一个客户端邮件创建者网页。我知道在 html 表单中使用 mailto 操作的问题(不是标准的,客户端上没有设置默认邮件应用程序)。但是网页不是很重要,他们也不是很在意。

mailto 操作创建的邮件具有以下语法:

主题:未定义的主题
正文:

参数1=值1
参数2=值2
.
.
.
参数=值

我可以像这样使用 JavaScript 来格式化邮件吗?

主题:XXXXX

身体: 值1;值2;值3...值N

【问题讨论】:

    标签: javascript email


    【解决方案1】:

    您可以创建一个 mailto-link 并使用 javascript 触发它:

      var mail = "mailto:buddy@mail.com?subject=New Mail&body=Mail text body";  
      var mlink = document.createElement('a');
      mlink.setAttribute('href', mail);
      mlink.click();
    

    【讨论】:

      【解决方案2】:

      我们在项目中使用的是一个打开 mailto: 链接的弹出窗口,这是我们发现在默认邮件客户端中撰写邮件的唯一方法,该客户端适用于所有邮件客户端(至少我们所有的客户端都使用过) .

      var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ;
      var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks
      var subject = ""//between the speech marks goes the subject of the message
      var href = "mailto:" + addresses + "?"
               + "subject=" + subject + "&"
               + "body=" + body;
      var wndMail;
      wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
      if(wndMail)
      {
          wndMail.close();    
      }
      

      【讨论】:

      • 在 IE 8 中似乎不起作用。根据调试器,wndMail 为空。
      • 很抱歉听到这个消息。它来自一个使用 IE6 的旧项目。随意编辑以改进:)
      • 目前找不到解决办法。
      • 我正在使用@Vincent Robert 提供的代码,但它只打开了谷歌浏览器,之后什么也没有发生,告诉我们现在该做什么!
      【解决方案3】:

      通过浏览器发送邮件时,您或多或少只有两种选择..

      1. 制作一个接受用户输入的页面,并允许他们通过您的网络服务器发送邮件。为此,您需要某种服务器端脚本。
      2. 使用 mailto: 链接触发打开用户注册的邮件客户端。这有你提到的明显缺陷,并且不太灵活。不过,它需要的工作更少。

      【讨论】:

        【解决方案4】:

        仅使用 javascript,不可能
        Javascript 不打算做这样的事情,并且在与它所在的网络浏览器以外的任何东西交互的方式上严重受损(有充分的理由!)。

        想一想:垃圾邮件发送者使用客户端 javascript 编写网站,该网站会自动向数千个随机电子邮件地址发送邮件。如果人们访问该站点,他们都将使用自己的计算机参与分布式群发邮件骗局……无需感染或用户交互!

        【讨论】:

        • 但是 mailto 动作不发送邮件,它只调用客户端默认的电子邮件应用程序并创建一个新邮件,但不发送它。这样此类恶意软件站点就无法在没有用户合作的情况下发送垃圾邮件。我只希望 javascript 格式化消息的正文,而不是发送它,但查看答案是不可能的。
        【解决方案5】:

        您是否有理由不能将数据发送到处理发送邮件的页面?以大多数语言发送电子邮件非常容易,因此除非有充分的理由将其推送到客户端,否则我会推荐该路线。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-05-31
          • 2011-05-26
          • 2017-04-01
          • 1970-01-01
          • 2016-01-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多