JAVA MAIL开发

package cn.gshs.util;

import java.io.IOException;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;

public class EmailSend {
	
	//发送邮件
	public static void sendMail() {
		//String host = "192.168.1.98"; // 指定的smtp服务器,本机的局域网IP
		String host = "smtp.live.com"; // 本机smtp服务器
		//String host = "smtp.163.com"; // 163的smtp服务器
		String from = "[email protected]"; // 邮件发送人的邮件地址
		String to = "[email protected]"; // 邮件接收人的邮件地址
		final String username = "[email protected]";  //发件人的邮件帐户
		final String password = "844270";   //发件人的邮件密码

		// 创建Properties 对象
		Properties props = System.getProperties();

		// 添加smtp服务器属性
		props.put("mail.smtp.host", host);
		props.put("mail.smtp.auth", "true");
//		props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
	//	props.setProperty("mail.smtp.socketFactory.fallback", "false"); 
		props.setProperty("mail.smtp.starttls.enable","true");
		props.setProperty("mail.smtp.port", "25"); 
//		props.setProperty("mail.smtp.socketFactory.port", "465"); 

		// 创建邮件会话
		Session session = Session.getDefaultInstance(props, new Authenticator(){
			@Override
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(username, password);
			}
			
		});

		try {
			// 定义邮件信息
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress(from));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(
					to));
			//message.setSubject(transferChinese("我有自己的邮件服务器了"));
			message.setSubject("I hava my own mail server");
			message.setText("From now, you have your own mail server, congratulation!");

			// 发送消息
			session.getTransport("smtp").send(message);  
			//Transport.send(message); //也可以这样创建Transport对象发送
			System.out.println("SendMail Process Over!");

		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
	
	//接受邮件
	public static void getMail(){
		String host = "210.51.54.164";
	    final String username = "chenmeng";
		final String password = "844270";

		// 创建Properties 对象
	    Properties props = new Properties();

		// 创建邮件会话
		Session session = Session.getDefaultInstance(props, new Authenticator(){
			@Override
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(username, password);
			}
			
		});

	    
		try {
			// 获取邮箱的pop3存储
			Store store = session.getStore("pop3");
			store.connect(host, username, password);

	        // 获取inbox文件
		    Folder folder = store.getFolder("INBOX");
		    folder.open(Folder.READ_ONLY);  //打开,打开后才能读取邮件信息

		    // 获取邮件消息
		    Message message[] = folder.getMessages();

		    for (int i=0, n=message.length; i<n; i++) {
		    	System.out.println(i + ": " + message[i].getFrom()[0]
		    	                               + "\t" + message[i].getSubject());
		    	try {
					message[i].writeTo(System.out);
				} catch (IOException e) {
					e.printStackTrace();
				}

		    }

		    // 关闭资源
		    folder.close(false);
		    store.close();
		    
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		
		System.out.println("GetMail Process Over!");

	}
	
	//邮件主题中文字符转换
	public static String transferChinese(String strText){
		try{
			strText = MimeUtility.encodeText(new String(strText.getBytes(), "GB2312"), "GB2312", "B");
		}catch(Exception ex){
			ex.printStackTrace();
		}
		return strText;
	}

	public static void main(String[] args) {
		EmailSend.sendMail();
		//EmailSend.getMail();
	}

}

你可能感兴趣的:(java,.net,Yahoo)