我已经阅读了一些很棒的在线资源,比如http://www.jwz.org/doc/threading.html,似乎任何电子邮件都是通过Message-ID标题发送的,然后对它的任何回复包括In-Reply-To命名该ID以及Refences哪些可以命名父级消息ID列表,电子邮件客户端在查看线程视图中的电子邮件列表时使用此信息构造线程.
我的问题是:是否可以将一系列电子邮件发送给带有伪标题的收件人,以使它们出现在一个没有收件人回复的线程中?如果是这样,为什么下面的尝试不起作用?
我们有一个系统可以发送几封与我们系统中特定实体相关的电子邮件.假设我们多次向每个小部件销售小部件和电子邮件用户.我们希望特定小部件ID的所有电子邮件在我们用户的电子邮件客户端中显示为电子邮件主题.
这里的旅行似乎通常是发送电子邮件,然后回复.我们的系统只是想发送几封电子邮件,并伪造In-Reply-To和References标题,以诱骗电子邮件客户端在树中显示它们.
我正在使用的Message-ID格式是:'foobar'+ widgetId + sequence
第一封邮箱:
<foobar-1234-0@server.com>第二封邮箱:
<foobar-1234-1@server.com><foobar-1234-0@server.com><foobar-1234-0@server.com>第三封邮箱:
<foobar-1234-2@server.com><foobar-1234-1@server.com><foobar-1234-0@server.com> <foobar-1234-1@server.com>(顺便说一句,包括@server.com消息ID 的部分似乎是至关重要的.没有它,使用例如foobar-123-0,我们的SMTP服务器只是忽略它并使用它自己生成的消息ID)
电子邮件在Thunderbird中正确显示,作为一棵树,但在Gmail中没有,它们只是在收件箱中一个接一个地列出,而其他会话在它们旁边正确地进行了线程化.我不确定我是否弄错了,Thunderbird在糟糕的数据方面做得最好,或者如果Gmail需要一些我不提供的额外非标准糖.
这是我的node.js测试脚本:
/*jshint dojo:true */
/*global console:true */
'use strict';
var Q = require('q'),
nconf = require('nconf'),
optimist = require('optimist'),
nodemailer = require('nodemailer');
console.log('Started to run.');
var argv = optimist.argv,
config = nconf.argv().env().file('conf.json'),
smtpConfig …Run Code Online (Sandbox Code Playgroud) 我有一个git项目,把handlebars.js作为一个子模块.我将在这里提供一个简单的例子 - 完整的项目更复杂,dojo任务和部署步骤在这里不相关.
$ mkdir handlebarstest ; cd handlebarstest ; git init
$ mkdir src ; git add src
$ git submodule add https://github.com/wycats/handlebars.js.git src/handlebars.js
Run Code Online (Sandbox Code Playgroud)
我们package.json没有提到handlebars.js,只是咕噜声:
{
"name": "handlebarstest",
"version": "1.0.0",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-clean": "~0.4.1",
"grunt-run-grunt": "latest"
}
}
Run Code Online (Sandbox Code Playgroud)
在这个项目的历史中,我们的安装和构建过程是:
$ npm install # install dependencies in package.json
$ grunt init # run the 'init' task which initialises git submodules
$ grunt build # run the 'build' task which compiles dojo etc.
Run Code Online (Sandbox Code Playgroud)
完成了我们项目的新克隆,比如在我们的构建服务器上,git子模块需要初始化,我们从grunt控制它,所以我们必须先安装grunt,然后运行一个任务到init子模块,包括麻烦的把手.js . …
我正处于 CouchDB 实验的第一周,并试图停止用 SQL 进行思考。我有一个文档集合(5000 个事件文件),它们都具有一些文档组所共有的 ID 值。所以可能有 10 个都有 TheID:'foobar'。
(如果有人问 - TheID 不是关系数据库中的自动递增值 - 它是我们的合作伙伴公司分配的唯一 ID。我无法重新设计我的源数据以其他方式标识自己,我必须使用这个用于识别文档组的 ID 字段。)
我想查询我的文档列表:
{ _id: 'document1', Message: { TheID: 'foobar' } }
{ _id: 'document2', Message: { TheID: 'xyz' } }
{ _id: 'document3', Message: { TheID: 'xyz' } }
{ _id: 'document4', Message: { TheID: 'foobar' } }
{ _id: 'document5', Message: { TheID: 'wibble' } }
{ _id: 'document6', Message: { TheID: 'foobar' } }
Run Code Online (Sandbox Code Playgroud)
我想要结果:
'foobar': [ 'document1', 'document4', …Run Code Online (Sandbox Code Playgroud) 我已经阅读了关于这个主题的各种帖子,并认为我理解通常的失败点.我发现我的两个产品缩略图图片,在"This Click'n'Pick Set包含以下2个产品"标题下,可以点击,但不要带我到<div>页面下方的命名元素.相反,它们会导致导航到http://www.premierrange.co.uk/#bundle_product_anchor_448.我在Linux上的Chrome(18.0.1025.33 beta)和Firefox(10.0.1)中看到了这一点.
http://www.premierrange.co.uk/index.php?main_page=clicknpick&groups_id=2&chosen_0=243&chosen_1=448
例如,有一个定位'#bundle_product_anchor_243'的锚点:
<a href="#bundle_product_anchor_243" title="Click here to jump to the 70cm Truly Curved Black Glass Curved Cooker Hood H77-7B">
<img src="http://www.premierrange.co.uk/thumbnailer.php?filename=images/H77-700.jpg&height=100" alt="70cm Truly Curved Black Glass Curved Cooker Hood H77-7B">
</a>
Run Code Online (Sandbox Code Playgroud)
这是针对<div>页面下方的:
<div class="productSeparator" id="bundle_product_anchor_243">
<h1>Product number 1 in this bundle of 2 products</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
我也试过让<h1>目标内部成为目标<div>,万一目标必须是内联元素而不是div,但似乎没有任何效果.
所述<div>含有严重表现<a>完全被时间关闭<div>含有目标元素出现在文档中.我不认为<a>在浏览器解析的时间点没有定义目标元素存在问题.
手动将"#bundle_product_anchor_448"添加到URL确实有效.
我知道由于我无法轻易解决的大量因素,该页面在大量点上无法进行HTML验证.我认为这个基本的'跳转到命名元素'功能应该可以正常工作.除了这个小小的导航怪癖之外,该页面功能完全正常.
有人有任何线索吗?
使用JUnit 4,我的ant构建脚本调用junit与任务总是将测试类名称报告为"未知".有没有办法解决这个问题,而不涉及从TestCase派生?
我使用@Test注释声明我的测试方法,例如:
SomeTest.java:
public class SomeTest {
@Test
public void doSomething() { .. }
}
Run Code Online (Sandbox Code Playgroud)
并在TestSuite中收集它们:
AllTests.java:
@RunWith(Suite.class)
@Suite.SuiteClasses( {
SomeTest.class
})
public class AllTests {
}
Run Code Online (Sandbox Code Playgroud)
然后我通过NetBeans调用ant任务,它具有很好的集成支持,可以打印JUnit运行的结果.除了测试名称总是"未知"之外,一切似乎都找不到,例如:
6 tests passed, 2 tests failed, 2 tests caused an error (8.4s)
com.mystuff.AllTests FAILED
Unknown passed (0.0s)
Unknown passed (0.0s)
Unknown passed (0.0s)
Unknown passed (0.0s)
Unknown passed (0.0s)
Unknown passed (0.0s)
Unknown FAILED (0.0s)
Unknown caused an ERROR: at org.hibernate.somethingorother.java:1234 (0.0s)
..etc..
Run Code Online (Sandbox Code Playgroud)
测试运行正常,我通常可以从记录的堆栈跟踪中找出故障点,但报告为"未知"的所有内容都令人烦恼和迟钝.
阅读了几篇SO帖子后,我发现有两种方法可以设置你的测试,旧的JUnit 3方法是从TestCase派生的,以及新的Junit 4方式使用@Test注释.
当我的测试在Eclipse中扩展TestCase(Junit)时,无法使用@Test注释执行测试
JUnit混淆:使用'extends TestCase'还是'@Test'?
这篇文章提到"在JUnit …
我有一个<img>右边的面板,其中包含一个控件标题和一长串项目.所以我有一个嵌套的flexbox情况:
.container (flex)
-> .child img
-> .child controls panel (flex)
-> .controls
-> .content-wrapper scrolling list
Run Code Online (Sandbox Code Playgroud)
在一个非常基本的层面上,两个并排面板很容易,是一个简单的flex align-items: stretch... https://codepen.io/neekfenwick/pen/MOxYxz
在这个基本级别上,如何保持两个并排相同高度的div是一个重复的问题?.
一旦右侧的面板与垂直滚动列表变得更加复杂,我无法看到如何使其父级的高度,第二个.child与第一个的高度相匹配.child. https://codepen.io/neekfenwick/pen/XzGJGw
+-------------+---------------+
| | Controls |
| Left child | |
| +---------------+
| | A|
| | Vertically |+
| | scrolling ||
| | items ||
| | |+
| | V|
+-------------+---------------+
Run Code Online (Sandbox Code Playgroud)
我已经阅读了具有可滚动内容的Flexbox项目,但这解决了水平滚动问题,而不是像这样的垂直布局.另外,带滚动区域的嵌套弹性框处理垂直堆叠的嵌套弹性框,我认为这种组合row和column方向混淆了我的情况.
作为代码段:
.container …Run Code Online (Sandbox Code Playgroud)