小编Cha*_*adT的帖子

创建一个用于编辑电子邮件模板的html wysiwyg编辑器

我正在开发的(基于Web的)软件需要一种方法让用户能够自定义电子邮件模板.

我熟悉TinyMCE等人.基于网络的所见即所得的编辑.然而,他们努力生成有效的(x)html标记,大量使用样式表.所有这些都不会很好地呈现在电子邮件客户端中(是的,我正在看着你...... outlook 2007).

是否有人知道可以配置生成电子邮件友好的HTML?

html email wysiwyg

15
推荐指数
1
解决办法
7056
查看次数

限制电子邮件发送过程的速度

对不起,标题有点糟糕,我无法正确地说出来.

编辑:我应该注意这是一个控制台c#app

我已经制作了一个像这样工作的系统原型(这是粗略的伪代码):

var collection = grabfromdb();

foreach (item in collection) {
    SendAnEmail();
}
Run Code Online (Sandbox Code Playgroud)

发送电子邮件:

SmtpClient mailClient = new SmtpClient;
mailClient.SendCompleted += new SendCompletedEventHandler(SendComplete);
mailClient.SendAsync('the mail message');
Run Code Online (Sandbox Code Playgroud)

SendComplete:

if (anyErrors) {
    errorHandling()
}
else {
    HitDBAndMarkAsSendOK();    
}
Run Code Online (Sandbox Code Playgroud)

显然这种设置并不理想.如果初始集合有10,000个记录,那么它将以相当短的顺序刷新10,000个smtpclient实例,因为它可以逐步执行 - 并且可能在此过程中呈现.

我理想的最终游戏是同时发送10个并发电子邮件.

想到一个hacky解决方案:添加一个计数器,在调用SendAnEmail()时递增,并在发送SendComplete时递减.在初始循环中调用SendAnEmail()之前,检查计数器,如果它太高,则在一段时间内休眠,然后再次检查.

我不确定这是一个如此伟大的想法,并认为SO蜂巢的思想将有办法正确地做到这一点.

我对线程知之甚少,不确定它是否适合在这里使用.例如,在后台线程中发送电子邮件,首先检查子线程的数量,以确保没有太多使用.或者如果内置了某种类型的"线程限制".


更新

根据Steven A. Lowe的建议,我现在有:

  • 一个字典,包含我的电子邮件和一个唯一的密钥(这是电子邮件队列
  • 填充字典的FillQue方法
  • ProcessQue方法,它是后台线程.它检查que和SendAsycs中的任何电子邮件.
  • SendCompleted委托,用于从que中删除电子邮件.并再次调用FillQue.

我对这个设置有一些问题.我想我已经错过了背景线程的船,我是否应该为词典中的每个项目产生其中一个?如果电子邮件que清空线程结束,我怎么能让线程因为缺少更好的单词而"闲逛".


最后更新

我在后台线程中放了一个'while(true){}'.如果que为空,则等待几秒钟并再次尝试.如果阙重复为空,我'打破'一会儿,程序结束......工作正常.我有点担心'虽然(真)'的业务但是......

c# multithreading smtpclient

6
推荐指数
1
解决办法
2652
查看次数

jquery验证尚未创建的元素

我想知道是否有可能让jQuery Validator插件验证在最初设置规则时dom中尚不存在的元素.

调用.Rules("add",therules)方法只会将规则附加到当前存在于dom中的元素.如果我要创造一些.验证不会触发.有什么想法吗?

我正在使用的验证器的主页:http://bassistance.de/jquery-plugins/jquery-plugin-validation/

通过http://ejohn.org/blog/javascript-micro-templating/创建新元素

基本上有一个ajax调用,服务器返回一堆json(ajaj?),这个json通过resig的模板引擎输入.示例模板如下所示:

<script type="text/html" id="ProductsTemplateEdit">
    <td>
        <input type="hidden" value="<#= item.ID #>" id="Edit.ID" name="Edit.ID" />
        <input type="text" value="<#= item.Price#>" id="Edit.Price" name="Edit.Price" />
    </td>
</script>
Run Code Online (Sandbox Code Playgroud)

这些值显然是通过传入的json填充的.

我还应该提一下,我正在使用xval验证框架,它基本上为我自动生成jquery验证规则:http://blog.codeville.net/2009/01/10/xval-a-validation-framework-for- ASPNET-MVC /

validation jquery jquery-validate

6
推荐指数
1
解决办法
5652
查看次数

Web开发框架:Zend Framework与Ruby on Rails对比ASP.NET MVC

我之前使用过Zend Framework,但是想知道你认为它与其他MVC框架相比如何?哪个更好?为什么?

Zend Framework我的背景是〜3个月

好:

  • 通过Zend_Layouts和Zend_Views模板化
  • Zend_Forms,Zend_Validation,Zend_Filter:协助表单输入
  • Zend_Tool现在允许像Ruby on Rails的CMD代码生成这样的东西,除了它现在在功能方面仍然非常有限

坏:

  • 陡峭的学习曲线
  • 现在还可以让我感到困惑

Ruby on Rails仅查看了一些截屏视频

  • 我喜欢控制器,动作,模型和表单的cmd代码生成
  • 它似乎很容易与AJAX合并

  • 我觉得它很难部署

ASP.NET MVC也只观看了一些截屏视频

  • 我喜欢LINQ
  • VS 2010的广泛支持将加速开发

  • 昂贵

frameworks

5
推荐指数
1
解决办法
1万
查看次数

jQuery Validator,以编程方式显示错误

我可以这样做:

validator.showErrors({ "nameOfField" : "ErrorMessage" });
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我尝试做这样的事情:

var propertyName = "nameOfField";
var errorMessage = "ErrorMessage";
validator.showErrors({ propertyName : errorMessage });
Run Code Online (Sandbox Code Playgroud)

它会抛出'element is undefined'错误.

javascript jquery

4
推荐指数
1
解决办法
7092
查看次数

jquery选择文本

<div>select this<strong>dfdfdf</strong></div>
<div><span>something</span>select this<strong>dfdfdf</strong></div>
Run Code Online (Sandbox Code Playgroud)

我如何使用jquery或只是javascript来选择div标签的值,但不包括任何子元素

//output
select this
Run Code Online (Sandbox Code Playgroud)

javascript jquery

3
推荐指数
1
解决办法
2756
查看次数

Silverlight 3 BETA DataGrid分组

NB这是针对silverlight 3测试版,RTM似乎完全不同地处理分组.

我有一个工作正常的网格,我正在使用GroupDescriptions属性,如下所示:

<data:DataGrid.GroupDescriptions>
    <cm:PropertyGroupDescription PropertyName="ClientName" />
</data:DataGrid.GroupDescriptions>
Run Code Online (Sandbox Code Playgroud)

这种方法非常出色,只有在呈现数据网格时,它才会显示"ClientName"的分组.显然,我希望它是"客户名称".我不能为我的生活看到一个允许我设置它的属性?

silverlight datagrid silverlight-3.0

3
推荐指数
1
解决办法
7256
查看次数

将CSV文件导入c#

我正在建立一个网站,其中一个要求是用户从他们的电子邮件客户端导出他们的联系人以将其导入网站.

因为每个电子邮件客户端以稍微不同的格式导出他们的联系人,所以我的头脑不得不以最好的方式来接近它.因为我不知道这些字段是什么,或者分隔符是什么.

我只想找到主要的电子邮件客户端/地址簿(outlook,apple mail,entourage,thunderbird).所有这些都有完全不同的格式.Entourage使用tab作为分隔符,其余的使用逗号等.我只需要拔出电子邮件地址和(如果可用)名称.名称变得棘手,因为一些客户端具有名字/姓氏的单独字段.

使用FileHelper是理想的,但在我可以连接解决方​​案之前,我似乎需要知道csv的结构.如果可能的话,我宁愿不去编写我自己的csv解析器.

这是我对集体蜂巢思想的看法:

计划A.

  • 阅读csv文件的第一行(所有格式都有一个标题作为第一行)并计算标签与逗号的数量.由此确定分隔符.
  • 使用某种类型的csv阅读器(如Lumenworks)为我提供文件其余部分的基本csv读取功能.
  • 在每个字段上执行正则表达式匹配以确定电子邮件列.
  • 不知道如何找出用户的名字......

B计划

  • 提示用户输入电子邮件客户端的类型,并为每个不同的客户端单独编码< - 看起来真的很笨重.

计划C.

....使用/购买已经执行此操作的现有组件?!(我肯定找不到一个!)

思考?

c# csv asp.net

2
推荐指数
1
解决办法
6974
查看次数

访问联系人列表,搜索联系人,拉出其号码,最后拨打(android)

我的应用程序从用户获取联系人姓名,然后如果联系人存在则应该在联系人列表中搜索.如果是,则拉出其号码,然后自动拨打此号码.

我似乎无法理解如何查找联系人姓名,然后提取其号码(如果存在).

public boolean seekAction(String s)
    {

        Intent callIntent= new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
        callIntent.setType(Phone.CONTENT_TYPE);
        if (callIntent.resolveActivity(getPackageManager()) != null) 
        {
             startActivityForResult(callIntent, CONTACT_CALL_CODE_REQUEST);

        }

    }



@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {

        if(resultCode == RESULT_OK)
        {
            if(requestCode == CONTACT_CALL_CODE_REQUEST)
            {
                // Get the URI and query the content provider for the phone number
                Uri contactUri = data.getData();
                String[] s = new String[]{Phone.NUMBER};
                Cursor cursor = getContentResolver().query(contactUri, s, null, null, null);

                // If the cursor returned is valid, get the phone …
Run Code Online (Sandbox Code Playgroud)

android

1
推荐指数
1
解决办法
97
查看次数

Silverlight 3 DataForm,如何显示/隐藏字段

我有一个DataForm,我已将某些DataField的Visibility设置为Collapsed,当用户从ComboBox中选择一个选项时,某些DataFields应该再次可见.

基本上(粗糙的伪代码).

OnComboBoxChange = 
    if this.index = 1 then
        DataForm.Fields[1].Visibility = Visible
    else
        DataForm.Fields[2].Visibility = Visible
Run Code Online (Sandbox Code Playgroud)

适用于MVVM模式的答案的奖励积分.

mvvm silverlight-3.0 dataform

0
推荐指数
1
解决办法
3110
查看次数