javamail发信和收信机制(smtp、pop3、imap)

javamail发信和收信机制(smtp、pop3、imap)

import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore;
import com.sun.mail.util.MailSSLSocketFactory;<pre name="code" class="html">public class MailSendAndReceiveTest {
public void pop3Receive(){
		try {
			Properties props = System.getProperties();
			props.setProperty("mail.pop3.host", "192.168.1.194");
			props.setProperty("mail.pop3.port", "110");
			props.setProperty("mail.store.protocol", "pop3");
			props.setProperty("mail.debug", "true");
			String username = "test@ext.com";
			String password = "123456";
			Session session = Session.getInstance(props);
			
			Store store = (Store) session.getStore("pop3");
			store.connect(username,password);
			Folder folder = null;
			folder =  (Folder) store.getFolder("INBOX");
			if (folder.exists())
				folder.open(2);
			Message[] messages = folder.getMessages();
			if(messages!=null&&messages.length>0){
				for (Message message : messages) {
					System.out.println(message.getSubject());
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

public void imapReceive(){
		try {
			Properties props = System.getProperties();
			props.setProperty("mail.imap.host", "192.168.1.194");
			props.setProperty("mail.imap.port", "143");
			props.setProperty("mail.store.protocol", "imap");
			props.setProperty("mail.debug", "true");
			String username = "test@ext.com";
			String password = "123456";
			Session session = Session.getInstance(props);
			
			IMAPStore store = (IMAPStore) session.getStore("imap");
			store.connect(username,password);
			IMAPFolder folder = null;
			folder =  (IMAPFolder) store.getFolder("INBOX");
			if (folder.exists())
				folder.open(2);
			Message[] messages = folder.getMessages();
			if(messages!=null&&messages.length>0){
				for (Message message : messages) {
					System.out.println(message.getSubject());
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

public void smtpSend(){
		try {
			Properties properties = new Properties();
			properties.setProperty("mail.transport.protocol", "smtp");// 发送邮件协议
			properties.setProperty("mail.smtp.auth", "true");// 需要验证
			properties.setProperty("mail.smtp.port", "25");
			properties.setProperty("mail.transport.protocol", "smtp");
			properties.setProperty("mail.smtp.host", "192.168.1.194");
			properties.setProperty("mail.debug", "true");//设置debug模式
			final String username = "test@ext.com";
			final String password = "123456";
			// 后台输出邮件发送的过程
			Session session = Session.getInstance(properties,
					new Authenticator() {
						protected PasswordAuthentication getPasswordAuthentication() {
							return new PasswordAuthentication(username,
									password);
						}
					});
			// 邮件信息
			Message messgae = new MimeMessage(session);
			messgae.setFrom(new InternetAddress("test@ext.com"));// 设置发送人
			messgae.setText("X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");// 设置邮件内容
			messgae.setSubject("测试postfix邮件发送");// 设置邮件主题
			// 发送邮件
			Transport tran = session.getTransport();
			tran.connect("192.168.1.194", username, password);// 连接到新浪邮箱服务器
			tran.sendMessage(messgae, new Address[] { new InternetAddress("postmaster@ext.com") });// 设置邮件接收人
			tran.close();
		} catch (Exception e) {
		}
	}

public void smtpSSLSend(){
		try {
			MailSSLSocketFactory sf = new MailSSLSocketFactory();
			sf.setTrustAllHosts(true);
			Properties properties = new Properties();
			// 邮件发送协议
			properties.setProperty("mail.transport.protocol", "smtp");
			// SMTP邮件服务器 
			properties.setProperty("mail.smtp.host", "192.168.1.194");
			// SMTP邮件服务器默认端口 
			properties.put("mail.smtp.socketFactory.port", 465);//发信端口
			 // 是否要求身份认证 
			properties.setProperty("mail.smtp.auth", "true");
			 // 是否启用调试模式
			properties.setProperty("mail.debug", "true");//设置debug模式
			properties.put("mail.smtp.ssl.enable", "true");//是否开启ssl
			properties.put("mail.smtp.ssl.socketFactory", sf);
			// 发送邮件协议
			properties.setProperty("mail.smtp.auth", "true");// 需要验证
			final String username = "test@ext.com";
			final String password = "123456";
			
			// 创建Session实例对象 
	        Session session = Session.getDefaultInstance(properties,new Authenticator() {
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(username,
							password);
				}
			});
	        // 创建MimeMessage实例对象 
	        MimeMessage message = new MimeMessage(session); 
	        // 设置发件人 
	        message.setFrom(new InternetAddress("test@ext.com")); 
	        // 设置邮件主题 
	        message.setSubject("SSL认证测试javamail"); 
	        // 设置收件人 
	        message.setRecipient(RecipientType.TO, new InternetAddress("postmaster@ext.com")); 
	        // 设置发送时间 
	        message.setSentDate(new Date()); 
	        // 设置纯文本内容为邮件正文 
	        message.setText("abcdefghijklmnopqrstuvwxyz");
	        //回执
			message.setHeader("Disposition-Notification-To", "test@ext.com");
			//紧急
			message.setHeader("X-Priority", "1");
	        // 保存并生成最终的邮件内容 
	        message.saveChanges(); 
	        Transport.send(message);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值