java利用commons-email.jar发送邮件

这几天写了一个简历网站,因为简历下面有个联系我的功能,这个功能可以可以向邮箱发送邮件,所以自己便开始学习博客开始解决发送邮件功能。

引入相关jar包

要用commos-email.jar实现发送邮箱功能需要先导入三个jar包:

  • commos-email.jar
  • mail.jar
  • activation-1.1.jar

修改邮箱的配置(这里以163为例)

首先登录你的163邮箱账号,然后在设置里选择POP3/SMTP/IMAP选项

java利用commons-email.jar发送邮件_第1张图片

然后将这些服务都打开

java利用commons-email.jar发送邮件_第2张图片

打开时系统会提醒你先填写一个授权码,这个授权码一定要记住

java利用commons-email.jar发送邮件_第3张图片

程序

然后就是代码部分的内容了

我的邮件是以HTML的格式发布的。

MailUtil:

public class MailUtil {

	public static void sendHtmlEmail(String name,String phone,String Email,String subject,String context){
		// 不要使用SimpleEmail,会出现乱码问题
		HtmlEmail email = new HtmlEmail();
		// SimpleEmail email = new SimpleEmail();
		try {
			// 这里是SMTP发送服务器的名字:163的如下:
			email.setHostName(MailConfig.host);
			email.setSSLOnConnect(true);//设置用ssl协议发送邮件
			System.out.println(MailConfig.port);
			email.setSmtpPort(MailConfig.port);
			// 字符编码集的设置
			email.setCharset("gbk");
			// 收件人的邮箱
			email.addTo(MailConfig.emailTo);
			// 发送人的邮箱
			email.setFrom(MailConfig.userName,name);
			// 如果需要认证信息的话,设置认证:用户名-授权码。分别为发件人在邮件服务器上的注册名称和设置的授权码,
			email.setAuthentication(MailConfig.userName, MailConfig.passWord);
			email.setSubject(subject);
			// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
			email.setMsg("

"+subject+"

" +"姓名:"+name+"
" +"电话:"+phone +"
" +"Email:"+Email +"
" +"内容:"+context); // 发送 email.send(); System.out.println("邮件发送成功!"); } catch (EmailException e) { e.printStackTrace(); System.out.println("邮件发送失败!"); } } }

MailConfig.port

public class MailConfig {
    private static final String PROPERTIES_DEFAULT = "mailConfig.properties";
    public static String host;//用什么邮件服务器
    public static Integer port;//端口
    public static String userName;//用户名,即账号
    public static String passWord;//授权码,不是登录密码
    public static String emailTo;//收件人
    public static String timeout;
    public static String personal;
    public static Properties properties;
    static{
        init();
    }

    /**
     * 初始化
     */
    private static void init() {
        properties = new Properties();
        try{
            InputStream inputStream = MailConfig.class.getClassLoader().getResourceAsStream(PROPERTIES_DEFAULT);
            properties.load(inputStream);
            inputStream.close();
            host = properties.getProperty("mailHost");
            port = Integer.parseInt(properties.getProperty("mailPort"));
            userName = properties.getProperty("mailUsername");
            passWord = properties.getProperty("mailPassword");
            timeout = properties.getProperty("mailTimeout");
            emailTo = properties.getProperty("mailTo");
        } catch(IOException e){
            e.printStackTrace();
        }
    }
}

mailConfig.properties

#服务器
mailHost=smtp.163.com
#端口号
mailPort=465
#邮箱账号
[email protected]
#邮箱授权码,不是账号登录密码,是你开启POP3/SMTP/IMAP服务时设置的授权码
mailPassword=123456789
#时间延迟
mailTimeout=25000
#收件人
[email protected]

这个亲测是成功的

你可能感兴趣的:(smtp,java,邮件,email,java工具)