一直看博客,很少动手去写,今天就写一点,算是自己的笔记吧,同时也欢迎各位大神吐槽!
群发邮件,在web页面动态显示邮件总数,发送成功及失败的个数(动态进度条显示);
web页面:使用progressbar插件
jsp代码:
var progressbar = $("#progressbar"); var progressLabel = progressbar.find(".progress-label"); $(function() { progressbar = $("#progressbar"); progressLabel = progressbar.find(".progress-label"); progressbar.progressbar({ value: false, change: function() { }, complete: function() { } }); }); var d; var current; var total; var failed = 0; function sendEmail() { d = false; progressbar.progressbar( "value", 0); progressLabel.text("Sending..."); var param = new Object(); var url = "<%=basePath%>sendEmail/sendEmailManagement.action?temp="+Math.random(); $("#Subutton").attr("disabled",false); $.get(url, $.param(param, true), function(data) { progress(); }); } var current; var total; var failed = 0; function progress() { $.get("<%=basePath%>sendEmail/checkSendingStatus.action?temp="+Math.random(), function(data1) { if(data1 == "finished"){ progressbar.progressbar( "value", 100); progressLabel.text("Complete, with " + failed + " mails failed"); d = true; return; } try{ current = data1.split("-")[0]; total = data1.split("-")[1]; failed = data1.split("-")[2]; var percent = 100 * parseFloat(current)/parseFloat(total); try{ progressbar.progressbar( "value", percent); progressLabel.text("Sending .. " + current + "/" + total + " - " + failed + " failed"); } catch(e){} } catch(e){ progressbar.progressbar( "value", 100); progressLabel.text("Complete!"); } }); if(d == false){ setTimeout( "progress()", 1000 ); } } </script> </head> <body> <center> <div class="container" style="width:90%;height: 200px;"> <div class="operation"> <div class="oButton"><input type="submit" class="button" value="Send" id="Subutton" onclick="javascript: sendEmail();" > </div> </div> <div id="progressbar"> <div class="progress-label">send emails</div> </div> </div> </center> </body> </html>
在这之前要记得导入progressbar相关的js文件,同时在jsp中要有
<div id="progressbar">
<div class="progress-label">send emails</div>
</div>
action代码:
为了进度条能够动态显示邮件个数,后台代码使用了线程:
public String sendEmailManagement() throws Exception { logger.info("sendEmaiManagement method"); emailList = sendEmailService.getEmailInfo(); int count = 0; for (int i = 0; i < emailList.size(); i++) { ++count; } sendEmail(emailList,count); return SUCCESS; } public void sendEmail(List<EmailBean> list,int emailCount) throws Exception{ status = "0-0-0"; instance = this; final List<EmailBean> eamilList = list; Thread task = new Thread(){ public Object instance; public void run(){ int count = 0; int failCount = 0; try { for(int i = 0; i < eamilList.size(); i++){ EmailBean bean = emailList.get(i); invoke("emailSubscribeWithoutData", bean); this.sleep(1000); } } catch (InterruptedException e) { e.printStackTrace(); } status = "finished"; } }; task.start(); writeOutStr("success"); } public boolean emailSubscribeWithoutData(EmailBean email) throws Exception { String toAddress = "";//邮箱地址 String subject = "test"; String content = "testdd"; boolean sendStatus; sendStatus = emailSender(toAddress,subject,content); return sendStatus; } public String checkSendingStatus() throws Exception{ System.out.println("checkSendStatus info --"); writeOutStr(status); return null; } public void invoke(String method, EmailBean bean){ int total=100; count++; Boolean result = false; try{ Method m = instance.getClass().getMethod(method, EmailBean.class); result = (Boolean)m.invoke(instance, bean); if(!result){ failCount++; } } catch(Exception e){ failCount++; e.printStackTrace(); } status = "" + count + "-" + total + "-" + failCount; } public boolean emailSender(String toAddress,String subject,String content){ MailSenderInfo configBean = ConfigEmailReader.readEmailConfig(); configBean.setToAddress(toAddress); configBean.setSubject(subject); configBean.setContent(content); //这个类主要来发送邮件 SimpleMailSender sms = new SimpleMailSender(); return sms.sendHtmlMail(configBean);//发送html格式 // return true; }
以上只是部分测试代码,比较凌乱,邮件发送相关方法再次省略,欢迎各位大神批评指正。
相关推荐
在Android平台上开发一个邮件发送器应用,主要涉及的是利用JavaMail API进行邮件处理。JavaMail API是一个开源的、跨平台的API,它提供了一系列接口和类来处理邮件发送和接收。下面将详细介绍如何在Android中实现...
2. **带进度条**:为了提升用户体验,程序集成了进度条显示,用户在发送邮件过程中可以清晰地看到邮件发送的状态,这增加了操作的透明度和用户等待时的舒适感。 3. **发送日志查询**:工具还提供了发送日志查询功能...
7. **进度显示**:为了提供用户体验,可以在主程序中添加一个简单的进度条或消息提示,让用户知道邮件发送的状态。 总的来说,这个课程设计涵盖了Python的多进程编程以及邮件发送的实践,这对于理解并发处理和实际...
此外,为了提高用户体验,可以添加进度条显示发送状态,或者在邮件发送完成后通知用户。 最后,提供的"Reco"可能是记录或日志文件,用于存储程序运行时的信息,如发送尝试、成功或失败的状态,这对于调试和优化邮件...
本文将详细探讨如何使用Delphi XE进行邮件发送功能的开发,覆盖Android、iOS以及Windows三个主要操作系统平台。 首先,Delphi XE支持多种邮件发送协议,包括SMTP(Simple Mail Transfer Protocol)和POP3(Post ...
在C#编程环境中,Winform(Windows Forms)是一种常用的用户界面框架,用于构建桌面应用程序。本教程将聚焦于如何在Winform应用中实现邮件的自动...同时,持续关注.NET Framework的更新,利用新特性优化邮件发送功能。
1. **初始化类**:实例化邮件发送类,并设置发件人、收件人、主题和邮件内容等基本信息。 2. **添加附件**:如果需要,可以通过类提供的方法添加文件作为邮件附件。 3. **设置内容类型**:为了发送HTML邮件,需要...
C#提供了`System.Net.Mail`命名空间,其中的`MailMessage`和`SmtpClient`类是实现邮件发送的核心。`MailMessage`对象用于构建邮件内容,包括发件人、收件人、主题和正文,同时可以添加多个附件。`SmtpClient`对象则...
标题中的“邮件发送页面(类似于QQ界面)”指的是在Android应用开发中创建一个与QQ邮箱类似的用户界面,用于发送电子邮件。这个界面可能包括输入收件人、主题、正文的文本框,以及附加文件等常见功能。这样的设计...
你可能需要创建文本框让用户输入收件人、主题和邮件正文,按钮触发邮件发送操作,以及可能的进度条或状态指示器来显示发送状态。 6. **事件驱动编程**:在WinForm中,按钮点击事件或其他用户交互事件会被触发,这些...
在“C#邮件发送类.txt”这个文件中,可能包含了具体的C#代码示例,演示如何创建MailMessage对象、配置SmtpClient、定义IEmailNotice接口以及实现异步发送邮件的逻辑。代码通常会展示如何设置SMTP服务器的地址、端口...
邮件发送功能的实现通常涉及到SMTP(Simple Mail Transfer Protocol)服务,下面将详细介绍这一知识点。 首先,C#中发送邮件的核心类是`System.Net.Mail.SmtpClient`和`System.Net.Mail.MailMessage`。`SmtpClient`...
《邮件发送插件Lightroom.zip:C#技术在Lightroom中的应用详解》 在数字摄影领域,Adobe Lightroom是一款不可或缺的图像管理和后期处理工具。它提供了丰富的编辑功能,让用户能够轻松管理并优化照片。然而,有时...
在邮件发送工具中,可能包括输入框用于填写邮件信息,按钮用于触发操作,以及可能的进度条来显示发送状态。 6. **错误处理**:在实际应用中,错误处理是必不可少的。开发者可能已经为SMTP连接失败、邮件发送失败或...
总结起来,通过结合Winform和SMTP服务,我们可以构建一个简单的邮件发送应用。用户可以在界面上填写相关信息,点击发送按钮,后台通过SMTP协议将邮件发送到指定的邮箱地址。这个过程涉及了.NET框架的邮件服务组件,...
例如,当用户点击发送按钮时,显示一个等待动画或进度条,直到邮件发送完成。 此外,如果你有名为“email”的源码文件,这可能包含一个完整的邮件发送示例项目,包括UI设计和逻辑实现。通过研究这个源码,你可以更...
为了提升用户体验,客户端可能包含状态指示器,如进度条或加载动画,显示邮件发送的状态。此外,可能还有日志记录功能,保存发送失败的邮件信息,便于后续分析。 8. **设计原则**: 应用程序的设计应遵循良好的...
在C#编程中,发送邮件是一项常见的任务,尤其在企业级应用中,如通知、报告或客户服务通信。本文将详细讲解如何实现一个完善的邮件发送功能,包括验证...通过合理组合以上代码片段,可以构建出满足需求的邮件发送系统。
- **进度显示与取消操作**:在邮件发送过程中显示进度条,同时允许用户在发送过程中取消操作。 - **报告与统计**:生成发送报告,统计成功和失败的邮件数量,以及可能的原因。 总的来说,这个“表格明细群发邮件...
本教程将详细介绍如何利用C#编写一个功能完善的邮件发送程序,包括支持群发和添加附件,同时确保在发送过程中界面始终保持响应。...同时,为了提高用户体验,可以考虑添加邮件发送进度条或者发送状态的实时反馈。