`
phoenix007
  • 浏览: 430906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一段群发邮件的代码

阅读更多
import javax.mail.*;
import javax.mail.internet.*;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.activation.*;

public class MailAccess {

	public static void main(String[] args) {

		ResultSet rs = null;
		int sendCount = 1;
		String from = "brue";
		String to = null;
		String fromname = "发件人名称";
		String subject = "关于XXX的通知";
		String type = "text/html";
                      //附件的本地地址
		String[] fileAttachment = { "d:\\通知1.gif", "d:\\通知2.gif","d:\\报送表.doc" };
                     //群发邮件的地址在access数据库中,读取并循环发送!
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			String url = "jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=d:\\email.mdb";
			Connection con = DriverManager.getConnection(url);
			Statement stmt = con.createStatement();
			String strSQL = "select email from email";
			rs = stmt.executeQuery(strSQL);
			while (rs.next()) {
				to = rs.getString("email");
				StringBuffer str = new StringBuffer();
				str.append("<P>有关成员单位:<BR>全国高校毕业生就业网络联盟成立以来,…………");
 				str.append("招聘信息可免费在www.myjob.edu.cn和www.ncss.org.cn发布。</P>");
				String message = str.toString();
				System.out.println(to);
				sendMail(from, fromname, to, subject, message, fileAttachment,type, sendCount++);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

 

	public static void sendMail(String from, String fromname, String to,
			String subject, String message, String[] fileAttachment,
			String type, int sendCount) throws Exception {
		// 以下是发送邮件的代码
		InternetAddress[] address = null;
		String mailserver = "mail.myjob.edu.cn";
		boolean sessionDebug = false;
		try {

			// 设定所要用的Mail 服务器和所使用的传输协议
			java.util.Properties props = System.getProperties();
			props.put("mail.host", mailserver);
			props.put("mail.transport.protocol", "smtp");
			props.put("mail.smtp.auth", "true");// 指定是否需要SMTP验证

			// 产生新的Session 服务
			javax.mail.Session mailSession = javax.mail.Session
					.getDefaultInstance(props, null);
			mailSession.setDebug(sessionDebug);
			Message msg = new MimeMessage(mailSession);

			// 设定发邮件的人
			msg.setFrom(new InternetAddress(from, MimeUtility.encodeText(
					fromname, "gb2312", "b")));

			// 设定收信人的信箱
			address = InternetAddress.parse(to, false);
			msg.setRecipients(Message.RecipientType.TO, address);

			// 设定信中的主题
			msg.setSubject(subject);

			// 设定送信的时间
			msg.setSentDate(new java.util.Date());

			Multipart mp = new MimeMultipart();
			MimeBodyPart mbp = new MimeBodyPart();

			// 设定邮件内容的类型为 text/plain 或 text/html
			mbp.setContent(message, type + ";charset=GB2312");
			mp.addBodyPart(mbp);

			// 附件部分
			for (int i = 0; i < fileAttachment.length; i++) {
				MimeBodyPart messageBodyPart = new MimeBodyPart();
				FileDataSource fds = new FileDataSource(fileAttachment[i]);
				messageBodyPart.setDataHandler(new DataHandler(fds));
				//支持中文文件名
				messageBodyPart.setFileName(MimeUtility.encodeWord(fds
						.getName(), "GB2312", null));
				mp.addBodyPart(messageBodyPart);
			}
			msg.setContent(mp);

			Transport transport = mailSession.getTransport("smtp");
		               //邮箱用户名和密码
			transport.connect(mailserver, "username", "password");
			transport.sendMessage(msg, msg.getAllRecipients());
			transport.close();
			System.out.println("成功发送 " + sendCount + " 封");

		} catch (MessagingException mex) {
			mex.printStackTrace();
			System.out.println(mex);
		}
	}

  

   上边群发的原理是使用了while循环调用sendMail方法,虽然能实现,但是更简单、更实用的方法如下所示:
    取得必要的Transport对象并调用SendMessage()发送每一个邮件。注意在调用之间设置或改变接收者。

  

		Message message = …;
			Transport t = session.getTransport("smtp");
			t.connect();
			message.setRecipient(Message.RecipientType.TO,recipient1);
			t.sendMessage(message,recipient);
			message.setRecipient(Message.RecipientType.TO,recipient2);
			t.sendMessage(message,recipient);
			message.setRecipient(Message.RecipientType.TO,recipient3);
			t.sendMessage(message,recipient);
			t.close();  

 

   程序也是从网上参考着凑出来的, 有什么不足之处,还望大家不吝赐教!

分享到:
评论

相关推荐

    接单王即时通讯代码

    网人互联接单王是一款备受受好评的即时通讯系统,接单王按钮是一个电子标签,可被运用在企业的网站、网络广告、邮件签名、网上论坛等处。...接单王使用方便,仅需在您的网页上增加一段代码,即可免费轻松使用

    发送邮件发送,先提一下SMTP

    说到发送邮件发送,先提一下SMTP(呵呵,高手就跳过这一段吧!)。 SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式...

    网站获取访客QQ系统

    访客统计助手就是通过一段JS代码连接本站独有的分析系统,获取您网站实时的访客QQ信息, 通过这类有意向的QQ访客,进行二次营销,尽可能地挽回您流失的客户,让您的流量与竞价费用不再白白浪费! 2、使用访客统计...

    即时通讯接单王

    网人互联接单王是一款倍受好评的即时通讯代码,同时可以作为网络营销工具、在线客服工具、网站管理工具。接单王按钮是一个电子标签,可被运用在...接单王使用方便,仅需在您的网页上增加一段代码,即可免费轻松使用。

    v5shop V8.3源代码下载

    (2)、UTF-8国际化代码,支付任意一种语言; (3)、支付多国语言包; 产品优势 搜索引擎优化 网站静态化: 融合了全站生成HTML静态页面和URL伪静态全面整合同步登陆,让你可以更随意的选择适合你网站的静态化模式...

    NopCommerce开源网上商城全源代码

    9.1.3邮件群发:管理员可以自己定义邮件内容,并将邮件发送给符合查询条件的所有会员或代理商 9.2第三方插件管理 9.2.1 CNZZ统计配置:访问统计内置了中国站长联盟(CNZZ)站长统计功能,只需要点击开通,...

    nopCommerce_2.65_Source开源网上商城全源代码

    9.1.3邮件群发:管理员可以自己定义邮件内容,并将邮件发送给符合查询条件的所有会员或代理商 9.2第三方插件管理 9.2.1 CNZZ统计配置:访问统计内置了中国站长联盟(CNZZ)站长统计功能,只需要点击开通,...

    齐博V7 整站系统

    邮件群发功能需要设置一个你的邮箱,一般建议用QQ邮箱,设置后,即可给网站会员群发邮件。短消息功能可以实现与论坛的短消息互通,并且有提醒功能。 智能静态网页处理技术 用户发表文章时,可以自动生成文章内容页...

    飘扬获取访客QQ系统 v1.001

    3、生成代码(将一段JS统计代码放入您的网站) 4、管理员增加用户账号(你可以将增加的账号发与其他公司做营销活动) 5、域名绑定(每个账号最多可以绑定5个域名,只有绑定域名者才能获取) 6、使用期限设置...

    CMS 网站管理系统 源码

    支持发送站内短信,邮件群发 支持我发表的评论管理 支持会员点券,有效期,资金明细,充值卡管理等 20、友情链接 支持链接分类、支持前台申请后台审核,支持按文字、logo等多种方式显示; 21、 站内调查模块 可设置...

    vc++ 开发实例源码包

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    梦幻商城时尚服装v11.rar

    NO.16 邮件群发系统: ◆ 订单生成,支付成功后自动发送通知到邮箱 ◆ 可以给注册会员发邮件 ◆ 可以自由设置邮件内容以及收信人 ◆ 定单生成可以自动发邮件通知会员 ◆ 商城搞活动可以给全部或特定的会员...

    梦幻商城服装v11.rar

    NO.16 邮件群发系统:◆ 订单生成,支付成功后自动发送通知到邮箱 ◆ 可以给注册会员发邮件 ◆ 可以自由设置邮件内容以及收信人 ◆ 定单生成可以自动发邮件通知会员 ◆ 商城搞活动可以给全部或特定的会员发邮件 ...

    全码 WDB 论坛

    方便的 群发邮件 功能,可以使用 $username,$password,$email等变量在邮件中, 并可定义每批发送个数(可发送普通用户/斑竹) .可以开启/关闭 自定义头像 .完整的文件分类锁定,速度和效率兼顾 .论坛...

    2009计算机 毕业设计 诚信体育用品

    (6) 智能性:系统在设计时,充分考虑系统运行的智能性,尽量的使程序智能化,在使用系统一段时间后,系统可以和所处部门的业务相融合。 第2章 在线购物管理系统的需求分析 2.1 系统基本情况描述 1、在线购物系统是...

    Excel新增工具集

    (一)群发邮件功能 1、制作工资条(成绩条)和工资簿(成绩簿):一张员工工资表 (学生成绩表)是由同一工作表中的同一单行或多行的表头下共存的若干条记录组成,要把单人的工资 (成绩)发给本人,用本软件可轻松地...

    九酷网络个人主页空间管理系统 v6.2.rar

    用户短信管理——可向指定用户或某一类型用户群发短信,可批量删除指定用户、指定内容、指定时间段、已读或未读 ------------------- 网站公告管理——发布网站最新公告,首页滚动字幕显示 用户站点类别——支持...

    小蜜蜂商务网站门户系统3.0

    BBWPS系统利用SMTP功能外发邮件,支持邮件群发,支持读取外部地址列表群发邮件;同时BBWPS提供读取外部会员数据库自动产生地址列表功能。 7、支持会员积分功能,可与第三方在线支付系统接口;提供虚拟银行系统,支持...

Global site tag (gtag.js) - Google Analytics