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

📄 sendmail.java

📁 一个功能较为完善的论坛
💻 JAVA
字号:
package org.redsoft.forum.mail;

import org.redsoft.forum.util.Validation;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

/**
 * A simple util class that sends out emails
 * @author David Xu
 * @author Charles Huang
 * @version 1.1
 */

public class SendMail {

    /**
     * "send" method to send the message.
     * @param to   To e-mail address.
     * @param from From e-mail address,optional.If not provided, will use "redsoft@chinaxp.org".
     * @param cc   CC e-mail list, optional.
     * @param subject Subject of the mail
     * @param body Mail body
     * @exception Exception if to e-mail address is empty
     */
    public static void send( final String to,
                      final String from,
                      final String subject,
                      final String body ) throws javax.mail.MessagingException,
                                                        javax.mail.internet.AddressException {

        //TODO: read the hardcoded values from propertiy file
        Validation.validateNotNull( to );
        Validation.validateNotNull( from );
        Validation.validateNotNull( subject );
        Validation.validateNotNull( body );

        final String smtpServer="www.chinaxp.org";
        final String user = "chinaxp";
        final String password = "3edc4rfv";

        final Properties props = new Properties();
        props.put("mail.smtp.host", smtpServer);

        final Session session = Session.getDefaultInstance(props, null);
        session.setDebug(false);
	    final Transport tr = session.getTransport("smtp");
    	tr.connect(smtpServer, user, password);
        MimeMessage msg = new MimeMessage( session );
        final MimeBodyPart mbp1 = new MimeBodyPart();
        final MimeMultipart mp = new MimeMultipart();
        msg.setFrom( new InternetAddress(from) );
        msg.setRecipient( Message.RecipientType.TO, new InternetAddress( to ) );
        msg.setSubject( subject,"GB2312");
        mbp1.setText(body, "GB2312");
        mp.addBodyPart(mbp1);
        msg.setContent( mp );
        msg.setSentDate(new java.util.Date());
	    msg.saveChanges();	// don't forget this
    	tr.send( msg );
    	tr.close();
    }

    class XAuthenticator extends Authenticator{
        private String user;
        private String password;

        public XAuthenticator( final String user,
                               final String password ){
            Validation.validateNotNull( user );
            Validation.validateNotNull( password );
        }
        public PasswordAuthentication getPasswordAuthentication(){
            return new PasswordAuthentication( user, password );
        }
    }

    public static void main( String[] args ){
        try{
            SendMail.send( "charles.huang@hp.com","charles@chinaxp.org","Notification","<html><img src='http://www.chinaxp.org/forum/images/logo.gif'><b>test</b></html>");
        }catch( final Exception exception ){
            exception.printStackTrace();
        }
    }
}//EOC

⌨️ 快捷键说明

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