⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagecenter.java

📁 一个用于监控WEB服务器和数据库服务器的客户端程序。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		try {
			message.setSubject("测试HTML方式发送邮件s");
			message.setFrom(new InternetAddress(MAIL_ADDRESS));
			message.addRecipient(Message.RecipientType.TO,   
					new InternetAddress("daibing@jobcn.com"));
			
			String htmlText = text;
			String path = "./img/";
			for(int i=0;i<imgs.size();i++) {
				htmlText += "<img src=\"cid:"+imgs.get(i)+"\"><br>";
				System.out.println("files[i]="+imgs.get(i));
			}
			
			BodyPart messageBodyPart = new MimeBodyPart();
			messageBodyPart.setContent(htmlText, "text/html");
			MimeMultipart multipart = new MimeMultipart("related");
			multipart.addBodyPart(messageBodyPart);
			
			
			for(int i=0;i<imgs.size();i++) {
				DataSource fds = new FileDataSource(path+imgs.get(i));
				messageBodyPart = new MimeBodyPart();
				messageBodyPart.setDataHandler(new DataHandler(fds));
				messageBodyPart.setHeader("Content-ID","<"+imgs.get(i)+">");
				multipart.addBodyPart(messageBodyPart);			
			}
			
			
			message.setContent(multipart);
			Transport.send(message);
			logger.info("邮件已发送!");
		} catch (AddressException e) {
			e.printStackTrace();
			logger.info("无效地址!");
		} catch (MessagingException e) {
			e.printStackTrace();
			logger.info("消息错,邮件发送失败!");
		}
	}
	
	public static void writeLog(String outputFile, String outputStr) {
		try {
			RandomAccessFile rf = new RandomAccessFile(outputFile, "rw");
			rf.seek(rf.length());
			rf.write(outputStr.getBytes());
			rf.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public String[] sendHtmlWithImg(String subject, String htmlText, ArrayList imgs, String[] mails) {
		String[] result = {"", ""};		
		Session session = null;
		Message message = null;
		MimeMultipart multipart = null;
		Transport transport = null;
		props = new Properties();
		props.put("mail.smtp.port", "25");
		props.put("mail.smtp.auth", "false");
		try
		{
			session = Session.getDefaultInstance(props, null);
			session.setDebug(false);
			message = new MimeMessage(session);
			message.setSubject(subject);
			String[] tempArray = mails[0].split("`");
			int tempLen = tempArray.length;
			String fromMail = tempArray[0];
			String fromPerson = tempLen > 1?tempArray[1]:"";
			String feedback = tempLen > 2?tempArray[2]:"";
			message.setFrom(new InternetAddress(fromMail, fromPerson));
			//是否要求回执
			if(feedback.equals("on.")) {
				message.setHeader("Disposition-Notification-To", fromMail);
			}
			tempArray = mails[1].split(";");			
			for(int i=0;i<tempArray.length;i++) {
				if (tempArray[i].length()<=3 || tempArray[i].indexOf("@")==-1)
				{
					continue;
				}
				message.addRecipient(Message.RecipientType.TO,   
					new InternetAddress(tempArray[i]));
			}
			tempArray = mails[2].split(";");			
			for(int i=0;i<tempArray.length;i++) {
				if (tempArray[i].length()<=3 || tempArray[i].indexOf("@")==-1)
				{
					continue;
				}
				message.addRecipient(Message.RecipientType.CC,   
					new InternetAddress(tempArray[i]));
			}
			tempArray = mails[3].split(";");			
			for(int i=0;i<tempArray.length;i++) {
				if (tempArray[i].length()<=3 || tempArray[i].indexOf("@")==-1)
				{
					continue;
				}
				message.addRecipient(Message.RecipientType.BCC,   
					new InternetAddress(tempArray[i]));
			}

			BodyPart messageBodyPart = new MimeBodyPart();
			messageBodyPart.setContent(htmlText, "text/html;charset=GBK");
			multipart = new MimeMultipart("related");
			multipart.addBodyPart(messageBodyPart);
			result[0] = "ok";
			imgs = imgs == null? new ArrayList():imgs;
			for(int i=0;i<imgs.size();i++) {
				String[] temp = (String[])imgs.get(i);
				String f = temp[0];
				if (new File(f).exists())
				{
					try{
						DataSource fds = new FileDataSource(f);
						messageBodyPart = new MimeBodyPart();
						messageBodyPart.setDataHandler(new DataHandler(fds));
						messageBodyPart.setHeader("Content-ID","<"+temp[1]+">");
						multipart.addBodyPart(messageBodyPart);	
					} catch (Exception e) {
						System.out.println(e);
						result[0] = "no";
						result[1] = ("未知错误!"+e.getMessage()).replaceAll("\r", "").replaceAll("\n", "").replaceAll("'", "  ");
						break;
					}
				}
				else {
					result[1] = ("系统找不到指定的文件:"+f).replaceAll("\r", "  ").replaceAll("\n", "  ").replaceAll("'", "  ");
				}
			}
			message.setContent(multipart);
			message.saveChanges();
			transport = session.getTransport("smtp");
			transport.connect(currentMailServer, null, null);
			transport.sendMessage(message, message.getAllRecipients());
			transport.close();
			logger.info(currentMailServer+" 邮件已发送!");
		} catch (AddressException e) {
			System.out.println(e);
			result[0] = "no";
			result[1] = ("无效邮件地址!"+e.getMessage()).replaceAll("\r", "").replaceAll("\n", "").replaceAll("'", "  ");
		} catch (MessagingException e) {
			System.out.println(e);
			currentMailServer = MAIL_SMTP_HOSTs[1];
			try {
				transport.connect(currentMailServer, null, null);
				transport.sendMessage(message, message.getAllRecipients());
				transport.close();
				result[0] = "ok";
				logger.info(currentMailServer+" 邮件已发送!");
			}
			catch (MessagingException ex) {
				System.out.println(ex);
				currentMailServer = MAIL_SMTP_HOSTs[2];
				try {
					transport.connect(currentMailServer, null, null);
					transport.sendMessage(message, message.getAllRecipients());
					transport.close();
					result[0] = "ok";
					logger.info(currentMailServer+" 邮件已发送!");
				}
				catch (Exception ex2) {
					System.out.println(ex2);
					result[0] = "no";
					result[1] = "邮件服务器繁忙,请稍候再试!";
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			result[0] = "no";
			result[1] = ("未知错误!"+e.getMessage()).replaceAll("\r", "").replaceAll("\n", "").replaceAll("'", "  ");
		}
		multipart = null;
		message = null;
		session = null;
		transport = null;
		//System.out.println("currentMailServer="+currentMailServer);
		return result;
	}
	
	public static void main(String[] args) {
		String[] mails = { "daibing@jobcn.com", "sssry22@163.com",
				"shenhai_22@163.com", "shenhai_22@yahoo.com.cn" };
		//MessageCenter.sendSimpleEmail(mails, "测试群发", "测试群发");
		//MessageCenter.testSendWithAttachment();
		//MessageCenter.testSendHtmlWithImg();
		new MessageCenter().sendHtmlWithImg("test", "hahaha", null, mails);
	}

	private Properties props;
	private String[] MAIL_SMTP_HOSTs = Constant.mailServers;
	private String currentMailServer = MAIL_SMTP_HOSTs[0];
	private static Logger logger = Logger.getLogger(MessageCenter.class);
	private static String MAIL_SMTP_HOST = "smtp.163.com";
	private static String MAIL_DOMAIN = "163.com";
	private static String MAIL_USER = "sssry22";
	private static String MAIL_PASSWORD = "158622";
	private static String MAIL_ADDRESS = MAIL_USER + "@" + MAIL_DOMAIN;
	private static String fileAttachment = "./img/A_1.jpg";
}

class CheckEmail extends Authenticator {
	private String m_username = null;

	private String m_userpass = null;

	public CheckEmail() {
	}

	public void setUsername(String username) {
		m_username = username;
	}

	public void setUserpass(String userpass) {
		m_userpass = userpass;
	}

	public CheckEmail(String username, String userpass) {
		super();
		setUsername(username);
		setUserpass(userpass);
	}

	public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(m_username, m_userpass);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -