我正在开发的(基于Web的)软件需要一种方法让用户能够自定义电子邮件模板.
我熟悉TinyMCE等人.基于网络的所见即所得的编辑.然而,他们努力生成有效的(x)html标记,大量使用样式表.所有这些都不会很好地呈现在电子邮件客户端中(是的,我正在看着你...... outlook 2007).
是否有人知道可以配置生成电子邮件友好的HTML?
对不起,标题有点糟糕,我无法正确地说出来.
编辑:我应该注意这是一个控制台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的建议,我现在有:
我对这个设置有一些问题.我想我已经错过了背景线程的船,我是否应该为词典中的每个项目产生其中一个?如果电子邮件que清空线程结束,我怎么能让线程因为缺少更好的单词而"闲逛".
我在后台线程中放了一个'while(true){}'.如果que为空,则等待几秒钟并再次尝试.如果阙重复为空,我'打破'一会儿,程序结束......工作正常.我有点担心'虽然(真)'的业务但是......
我想知道是否有可能让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 /
我之前使用过Zend Framework,但是想知道你认为它与其他MVC框架相比如何?哪个更好?为什么?
Zend Framework我的背景是〜3个月
好:
坏:
Ruby on Rails仅查看了一些截屏视频
好
坏
ASP.NET MVC也只观看了一些截屏视频
好
坏
我可以这样做:
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'错误.
<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) NB这是针对silverlight 3测试版,RTM似乎完全不同地处理分组.
我有一个工作正常的网格,我正在使用GroupDescriptions属性,如下所示:
<data:DataGrid.GroupDescriptions>
<cm:PropertyGroupDescription PropertyName="ClientName" />
</data:DataGrid.GroupDescriptions>
Run Code Online (Sandbox Code Playgroud)
这种方法非常出色,只有在呈现数据网格时,它才会显示"ClientName"的分组.显然,我希望它是"客户名称".我不能为我的生活看到一个允许我设置它的属性?
我正在建立一个网站,其中一个要求是用户从他们的电子邮件客户端导出他们的联系人以将其导入网站.
因为每个电子邮件客户端以稍微不同的格式导出他们的联系人,所以我的头脑不得不以最好的方式来接近它.因为我不知道这些字段是什么,或者分隔符是什么.
我只想找到主要的电子邮件客户端/地址簿(outlook,apple mail,entourage,thunderbird).所有这些都有完全不同的格式.Entourage使用tab作为分隔符,其余的使用逗号等.我只需要拔出电子邮件地址和(如果可用)名称.名称变得棘手,因为一些客户端具有名字/姓氏的单独字段.
使用FileHelper是理想的,但在我可以连接解决方案之前,我似乎需要知道csv的结构.如果可能的话,我宁愿不去编写我自己的csv解析器.
这是我对集体蜂巢思想的看法:
....使用/购买已经执行此操作的现有组件?!(我肯定找不到一个!)
思考?
我的应用程序从用户获取联系人姓名,然后如果联系人存在则应该在联系人列表中搜索.如果是,则拉出其号码,然后自动拨打此号码.
我似乎无法理解如何查找联系人姓名,然后提取其号码(如果存在).
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) 我有一个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模式的答案的奖励积分.
jquery ×3
c# ×2
javascript ×2
android ×1
asp.net ×1
csv ×1
dataform ×1
datagrid ×1
email ×1
frameworks ×1
html ×1
mvvm ×1
silverlight ×1
smtpclient ×1
validation ×1
wysiwyg ×1