mailto:动态添加用户到同一封电子邮件

时间:2014-07-17 14:10:06

标签: javascript php jquery email

假设我有一个我想要发送电子邮件的用户列表。 mailto:让我打开电子邮件,然后插入他们的电子邮件地址。我希望这是动态的。

的mailto:1@1.com

的mailto:2@2.com

的mailto:3@3.com

的mailto:4@4.com

示例:我点击用户1& 4并发送和发送电子邮件。下次,我点击2& 3并发送另一封电子邮件。

问题:现在,每次点击用户,都会打开一个新窗口。我会向用户发送单独的电子邮件给1& 4.我必须使用什么功能,因此每次点击电子邮件时都不会打开新的电子邮件窗口。如果我单击所有用户1到4,我希望所有4个电子邮件地址都在同一个窗口中,因此我向所有4个用户发送1封电子邮件。不是相反。

3 个答案:

答案 0 :(得分:1)

您可以使用Javascript或Jquery来检测点击次数,阻止默认操作,然后将它们编译到列表中。然后必须使用第二个按钮来触发操作。

<a href='1@1.com' class='mailto'>User 1</a>
<a href='2@2.com' class='mailto'>User 2</a>
<a href='mailto:' id='combined' style='display: none;'></a>
<input type='button' value='Send' id='send'>

<script>
$('.mailto').click(function(e){
    e.preventDefault();
    $('#combined').attr('href',$('#combined').attr('href') + $(this).attr('href') + ';');
});
$('#send').click(function(e) {
    $('#combined')[0].click();
});

</script>

参见示例:http://jsfiddle.net/evVR8/2

你可能还想要一个清晰的按钮,将#combined的href返回'mailto:'

编辑 - 更新了jsfiddle以显示当前所选用户的清晰显示列表。

你也可以结合使用这个和@ Brad-Christie的答案,这样他们就可以简单地使用复选框,这样就可以更容易地看到你发送给谁了。但不是使用window.location.replace而是使用隐藏链接并单击触发器。

答案 1 :(得分:1)

虽然通过mailto:协议存在no regulated way to send emails to multiple recipients,但您可以引入一种使用复选框(或其他方式)来模仿它的格式。但是,如前所述,我们无法保证它能够正常运作:

<label>
  <input type="checkbox" name="to" value="1@1.com">1@1.com
</label>
<label>
  <input type="checkbox" name="to" value="2@2.com">2@2.com
</label>
<label>
  <input type="checkbox" name="to" value="3@3.com">3@3.com
</label>
<label>
  <input type="checkbox" name="to" value="4@4.com">4@4.com
</label>
<input type="button" value="Send Email" id="send-email" />

为简单起见,请使用一些jQuery:

$('#send-email').on('click', function(e){
  var to = [];
  $('input[name="to"]:checked').each(function(){
    to.push($(this).val());
  });
  window.location.replace('mailto:' + to.join(','));
  e.preventDefault();
  return false;
});

Example of the above

但是,您最好在后端使用PHP send the email,因为它可以(并且将)优雅且一致地处理多个收件人。

答案 2 :(得分:0)

请查看this link

当您知道如何添加多个收件人时,只需将字符串与地址连接或添加简单的javascript和复选框