灌灌水,附上我使用javamail smtp的类 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 灌灌水,附上我使用javamail smtp的类 (http://www.webasp.net/article/8/7054.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-26 |
| 使用范例: /* * new sendmail() 使用GBK的默认编码发送文本信息 * new sendmail(编码,文本还是html); */ wuyu.javamail.sendmail mail = new wuyu.javamail.sendmail( "GBK", true ); /* * mail.connect (smtp服务器); * main.connect(smtp服务器,用户名,密码); 适用于smtp认证的发信服务器 */ mail.connect( args[0], args[1], args[2] ); for ( int i = 0; i < Integer.parseInt( args[3] ); i++ ) { System.out.print( i + "\t" ); /* * main.send(from,to,cc,bcc,主题,正文,附件文件名) * to,cc,bcc可填写多个mail地址 * 附件文件名为null,表示不发送附件 */ mail.send( "mmwy@ynwst.com", args[4], "", "", "这是主题" + i, "<b>这是正文</b>", null ); System.out.println( i ); } mail.close(); =-=-------------------- sendmail.java ------------------------------ package wuyu.javamail; /** * 调用java mail发送邮件的类 */ public class sendmail { private String encode;//文本编码 private boolean HTML;//文本还是html内容 private javax.mail.Session session; private javax.mail.Transport transport; public sendmail() { this.encode = "GBK"; this.HTML = false; } public sendmail( String encode, boolean html ) { this.encode = encode; this.HTML = html; } public boolean connect( String smtpHost ) { return connect( smtpHost, null, null ); } public boolean connect( String smtpHost, String uid, String pwd ) { try { java.util.Properties properties = new java.util.Properties(); properties.put( "mail.smtp.host", smtpHost ); if ( uid == null || uid.equals( "" ) ) { session = javax.mail.Session.getInstance( properties, null ); } else { properties.put( "mail.smtp.auth", "true" ); Auth auth = new Auth( uid, pwd ); session = javax.mail.Session.getInstance( properties, auth ); } transport = session.getTransport( "smtp" ); transport.connect(); return true; } catch ( Exception e ) { e.printStackTrace(); return false; } } public void close() { if ( transport != null ) { try { transport.close(); } catch ( Exception e ) { e.printStackTrace(); } } } public void send( String from, String to, String cc, String bcc, String subject, String text, String[] filename ) { try { javax.mail.internet.MimeMessage mimeMessage = createMimeMessage( session, from, to, cc, bcc, subject, text, filename ); transport.sendMessage( mimeMessage, mimeMessage.getAllRecipients() ); } catch ( javax.mail.MessagingException e ) { e.printStackTrace(); //To change body of catch statement use Options | File Templates. } } private javax.mail.internet.MimeMessage createMimeMessage( javax.mail.Session session, String from, String to, String cc, String bcc, String subject, String text, String[] filename ) throws javax.mail.MessagingException { javax.mail.internet.MimeMessage message = new javax.mail.internet.MimeMessage( session ); javax.mail.internet.InternetAddress fromAddress = new javax.mail.internet.InternetAddress( from ); message.setFrom( fromAddress ); javax.mail.internet.InternetAddress[] toAddress = javax.mail.internet.InternetAddress.parse( to ); javax.mail.internet.InternetAddress[] ccAddress = javax.mail.internet.InternetAddress.parse( cc ); javax.mail.internet.InternetAddress[] bccAddress = javax.mail.internet.InternetAddress.parse( bcc ); message.setRecipients( javax.mail.Message.RecipientType.TO, toAddress ); message.setRecipients( javax.mail.Message.RecipientType.CC, ccAddress ); message.setRecipients( javax.mail.Message.RecipientType.BCC, bccAddress ); message.setSubject( subject, this.encode ); //处理附件 if ( filename != null && filename.length > 0 ) { javax.mail.Multipart multipart = new javax.mail.internet.MimeMultipart(); javax.mail.internet.MimeBodyPart mimeBodyPart = new javax.mail.internet.MimeBodyPart(); if ( HTML ) { mimeBodyPart.setContent( text, "text/html;charset="+this.encode ); } else { mimeBodyPart.setText( text, this.encode ); } multipart.addBodyPart( mimeBodyPart ); for ( int i = 0; i < filename.length; i++ ) { try { javax.mail.internet.MimeBodyPart fileBodyPart = new javax.mail.internet.MimeBodyPart(); javax.activation.DataSource datasource = new javax.activation.FileDataSource( filename[i] ); fileBodyPart.setDataHandler( new javax.activation.DataHandler( datasource ) ); fileBodyPart.setFileName( new java.io.File( filename[i] ).getName() ); multipart.addBodyPart( fileBodyPart ); } catch ( Exception e ) { e.printStackTrace(); } } message.setContent( multipart ); } else { if ( HTML ) { message.setContent( text, "text/html;charset="+this.encode ); } else { message.setText( text, this.encode ); } } return message; } } Auth.java ------------------------ package wuyu.javamail; public class Auth extends javax.mail.Authenticator { private String user,pwd; public Auth( String user, String pwd ) { this.user = user; this.pwd = pwd; } protected javax.mail.PasswordAuthentication getPasswordAuthentication() { return new javax.mail.PasswordAuthentication( this.user, this.pwd ); } } |
| webasp.net |