用JAVAMAIL发送邮件的一个简单例子
2013-05-13 09:21
405 查看
写了一个收发邮件的应用程序[在列表里面可以看到]但是毕竟有些复杂,关键部分其实也就是几行代码,为了大家使用方便,我把发送邮件的代码单独拿了出来,并且分为发送附件/不发送附件两个方法,便于大家查看,只是什么设计啦,编程思想啦,等等就谈不到了,呵呵,大家将就吧
JDK版本
1.4.x
其 他
JAVAMAIL相关包
功能简介:
简单的邮件发送功能,可以发送附件
源代码如下
JDK版本
1.4.x
其 他
JAVAMAIL相关包
功能简介:
简单的邮件发送功能,可以发送附件
源代码如下
import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.util.*; import java.util.*; import java.text.*; import java.io.*; public class SendMail { //传入的参数有密码、姓名、谁发、发给谁、主题、正文内容、smtp地址、附件文件路径、附件的新文件名、发送类型(text/html) //发送邮件主函数 public String sendmail(int myport,String password,String username,String myfrom,String myto,String mysubject,String mytext,String mysmtp,String[] filepath,String[] newfilename,String htmlandtext) { try{ int indexstr=0; if (filepath[0]!=null && !filepath[0].equals("")) indexstr=1; //替换字符串 // jbemail myjbemail=new jbemail(); // filepath=myjbemail.myreplace(filepath,"\\","\\\\"); // System.out.println("附件地址"+filepath+"服务器地址"+mysmtp+mysmtp.length()); //Properties props = new Properties(); Properties props = System.getProperties(); Session sendMailSession; Store store; //收邮件时使用 Transport transport;//发邮件时使用 props.put("mail.smtp.host",mysmtp); props.put("mail.smtp.auth","true"); SmtpAuthenticator sa=new SmtpAuthenticator(username,password); sendMailSession = Session.getInstance(props,sa); //sendMailSession = Session.getInstance(props,null); sendMailSession.setDebug(true); MimeMessage newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new InternetAddress(myfrom)); newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(myto)); //设定邮件格式 newMessage.setSentDate(new Date()); System.out.println(htmlandtext+"邮件正文格式"); Multipart multipart = new MimeMultipart(); if (htmlandtext.equals("text")) { //获得文本格式的邮件 newMessage.setSubject(mysubject); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(mytext); multipart.addBodyPart(messageBodyPart); } else if(htmlandtext.equals("html")) { //设置邮件内容,将邮件body部分转化为HTML格式 newMessage.setSubject(mysubject,"gb2312"); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(mytext,"text/html;charset=gb2312")); multipart.addBodyPart(messageBodyPart); } if (indexstr>0) { for(int i=0;i { if (newfilename[i]!=null) { //创建BodyPart对象以便获得附件 BodyPart messageBodyPart = new MimeBodyPart(); System.out.println("附件地址"+filepath[i]); DataSource source = new FileDataSource(filepath[i]); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(newfilename[i]); multipart.addBodyPart(messageBodyPart); } } } //将正文和附件添加到邮件中 newMessage.setContent(multipart); newMessage.saveChanges(); //transport = sendMailSession.getStore("pop3"); transport = sendMailSession.getTransport("smtp"); transport.connect(mysmtp,myport,username,password); //transport.connect(); transport.send(newMessage,newMessage.getAllRecipients()); System.out.println("成功发送到"+myto); return "ok"; } catch(MessagingException m) { System.out.println(m.toString()+"失败"); return myto; } } //不含发送附件的函数 //传入的参数有port地址、密码、姓名、谁发、发给谁、主题、正文内容、smtp地址、发送类型(text/html) public String sendmail(String mailPathlog,int myport,String password,String username,String myfrom,String myto,String mysubject,String mytext,String mysmtp,String htmlandtext) { try{ //解码 mysubject=java.net.URLDecoder.decode(mysubject); //Properties props = new Properties(); Properties props = System.getProperties(); Session sendMailSession; Store store; //收邮件时使用 Transport transport;//发邮件时使用 props.put("mail.smtp.host",mysmtp); props.put("mail.smtp.auth","true"); SmtpAuthenticator sa=new SmtpAuthenticator(username,password); //身份验证 sendMailSession = Session.getInstance(props,sa); //sendMailSession = Session.getInstance(props,null); sendMailSession.setDebug(true); MimeMessage newMessage = new MimeMessage(sendMailSession); try { newMessage.setFrom(new InternetAddress(myfrom,"法律之星")); newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(myto)); } catch(java.io.UnsupportedEncodingException ex) { System.out.println(ex.toString()); } //设定邮件格式 newMessage.setSentDate(new Date()); System.out.println(htmlandtext+"邮件正文格式"); Multipart multipart = new MimeMultipart(); if (htmlandtext.equals("text")) { //获得文本格式的邮件 newMessage.setSubject(mysubject); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(mytext); multipart.addBodyPart(messageBodyPart); } else if(htmlandtext.equals("html")) { //设置邮件内容,将邮件body部分转化为HTML格式 newMessage.setSubject(mysubject,"gb2312"); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(mytext,"text/html;charset=gb2312")); multipart.addBodyPart(messageBodyPart); } //将正文添加到邮件中 newMessage.setContent(multipart); newMessage.saveChanges(); //transport = sendMailSession.getStore("pop3"); transport = sendMailSession.getTransport("smtp"); transport.connect(mysmtp,myport,username,password); //transport.connect(); transport.send(newMessage,newMessage.getAllRecipients()); System.out.println("成功发送到"+myto+mytext); return "ok"; } catch(MessagingException m) { System.out.println(m.toString()+"失败"); //生成当前日期 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date dateTime= new Date(); String sDateTime=dateFormat.format(dateTime); //生成日志文件 try { File filelog=new File(mailPathlog+"\\"+"mainlog.txt"); BufferedWriter out2=new BufferedWriter(new FileWriter(filelog.getPath(),true)); String newline = System.getProperty("line.separator"); out2.write(sDateTime+"/"+mysmtp+"/"+myfrom+"/"+myto+"/"+m.toString()+"/"+newline); out2.close(); } catch (IOException ex) { System.out.println(ex.toString()); } return myto; } } class SmtpAuthenticator extends Authenticator { //SMTP身份验证 public SmtpAuthenticator(String username,String password) { this.username=username; this.password=password; } public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(this.username,this.password); } String username=null; String password=null; } }
相关文章推荐
- javamail 一个发送邮件的简单例子(转载)
- 利用JavaMail发送邮件的一个例子
- 一个发送邮件的简单例子
- javamail发送邮件的简单例子
- 用javamail实现一个简单的邮件发送
- 一个简单的自动发送邮件系统(三)
- Javamail简单的发送邮件附件实例
- JMS P2P方式的消息发送/接收的一个简单例子
- javamail发送邮件的简单实例
- 用Python实现一个简单的能够发送带附件的邮件程序的教程
- javaMail简单发送邮件
- 向邮箱发送一个简单的邮件
- 基于JavaMail的Java邮件发送:简单邮件发送
- javamail发送邮件的简单实例
- Java Mail(二):JavaMail介绍及发送一封简单邮件
- JavaMail介绍及发送一封简单邮件
- 一个简单的自动发送邮件系统(一)
- JavaMail发送简单邮件
- javamail发送邮件的简单实例
- 基于JavaMail的Java邮件发送:简单邮件发送