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

📄 sendmail.java

📁 基于JavaMail API 实现的桌面程序,邮件收发器
💻 JAVA
字号:
/*
 * sendMail.java
 *
 * Created on 2006年5月23日, 下午4:43
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package javamail;
import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 
import java.util.Date; 
import javax.activation.*; 
import java.io.*; 
/**
 *
 * @author freezing
 */
class sendMail{
	
    private MimeMessage mimeMsg; //MIME邮件对象 

    private Session session; //邮件会话对象 
    private Properties props; //系统属性 
    private boolean needAuth = false; //smtp是否需要认证 

    private String username = ""; //smtp认证用户名和密码 
    private String password = ""; 
    private MyAuth Auth;
    private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 

	public sendMail(String smtp)
	{ 
		setSmtpHost(smtp); 
		createMimeMessage(); 
	} 

	public void setSmtpHost(String hostName)
	{ 
		System.out.println("设置系统属性:mail.smtp.host = "+hostName); 
		if(props == null)props = System.getProperties(); //获得系统属性对象 
		props.put("mail.smtp.host",hostName); //设置SMTP主机 
	} 

	public boolean createMimeMessage() 
	{ 
		try{ 
			System.out.println("准备获取邮件会话对象!");  
			if(needAuth)
			{
			Auth=new MyAuth(username,password);
			session = Session.getDefaultInstance(props,Auth); //获得邮件会话对象 
			}
			else
				session = Session.getDefaultInstance(props,null); 
		} 
		catch(Exception e){ 
			System.err.println("获取邮件会话对象时发生错误!"+e); 
		return false; 
		}
		
		System.out.println("准备创建MIME邮件对象!"); 
		
		try{ 
			mimeMsg = new MimeMessage(session); //创建MIME邮件对象 
			mp = new MimeMultipart(); 
			System.out.println("MIME对象创建成功!");
			return true;
			}catch(Exception e)
			{
				System.err.println("MIME对象创建失败!");
				return false;
			}
	}
	
	public void setNeedAuth(boolean need) 
	{ 
		System.out.println("设置smtp身份认证:mail.smtp.auth = "+need); 
		if(props == null)props = System.getProperties(); 

		if(need){ 
			props.put("mail.smtp.auth","true"); 
		}else{ 
			props.put("mail.smtp.auth","false"); 
		} 
	} 	

	public void setNamePass(String name,String pass) { 
		username = name; 
		password = pass; 
	} 
	public boolean setSubject(String mailSubject)
	{ 
		System.out.println("设置邮件主题!"); 
		try{ 
			mimeMsg.setSubject(mailSubject); 
			System.out.println("主题是:"+mailSubject); 
			return true; 
		} catch(Exception e) { 
			System.err.println("设置邮件主题发生错误!"); 
			return false; 
		} 
	} 

	public boolean setBody(String mailBody)
	{ 
		try{ 
		
			BodyPart bp = new MimeBodyPart(); 
			bp.setContent(""+mailBody,"text/html;charset=GB2312"); 
			mp.addBodyPart(bp); 
			System.out.println("邮件内容是:"+mailBody);
			return true; 
			}catch(Exception e)
			{
				System.err.println("邮件下文设置失败"+e);
				return false;
			}
	} 
	public boolean addFileAffix(String filename) 
	{ 

		System.out.println("增加邮件附件:"+filename); 
		try{ 
			BodyPart bp = new MimeBodyPart(); 
			FileDataSource fileds = new FileDataSource(filename); 
			bp.setDataHandler(new DataHandler(fileds)); 
			bp.setFileName(fileds.getName()); 

			mp.addBodyPart(bp); 

			return true; 
			}catch(Exception e){ 
				System.err.println("增加邮件附件:"+filename+"发生错误!"+e); 
				return false; 
			} 
	} 
	public boolean setFrom(String from) 
	{ 
		System.out.println("设置发信人!"); 
		try{ 
			mimeMsg.setFrom(new InternetAddress(from)); //设置发信人 
			System.out.println("发信人:"+from); 
			return true; 
		} catch(Exception e) 
		{ 
			System.err.println("发信人设置失败:"+e);
			return false;
		} 
	} 
	public boolean setTo(String to)
	{ 
		if(to == null)return false; 
		try{ 
			mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to)); 
			System.out.println("收信人:"+to);
			return true; 
		}catch(Exception e) 
		{ 
			System.err.println("收信人设置失败:"+e);
			return false;
		} 

	} 
	
	public boolean setCopyTo(String copyto) 
	{ 
		if(copyto == null)return false; 
		try{ 
			mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto)); 
			return true; 
		}catch(Exception e) 
		{ return false; } 
	} 
	
	public boolean sendout() 
	{ 
		try{ 
			mimeMsg.setContent(mp); 
			mimeMsg.saveChanges(); 
			System.out.println("正在发送邮件...."); 

			Session mailSession = Session.getInstance(props,null);
			mailSession.setDebug(true); 
			Transport transport = mailSession.getTransport("smtp"); 
			transport.connect((String)props.get("mail.smtp.host"),username,password); 
			transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO)); 
			//transport.send(mimeMsg); 

			System.out.println("发送邮件成功!"); 
			transport.close(); 

			return true; 
		}catch(Exception e) 
		{ 
			System.err.println("邮件发送失败!"+e); 
			return false; 
		} 
	} 

    
}

⌨️ 快捷键说明

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