这几天写了一个简历网站,因为简历下面有个联系我的功能,这个功能可以可以向邮箱发送邮件,所以自己便开始学习博客开始解决发送邮件功能。
引入相关jar包
要用commos-email.jar实现发送邮箱功能需要先导入三个jar包:
- commos-email.jar
- mail.jar
- activation-1.1.jar
修改邮箱的配置(这里以163为例)
首先登录你的163邮箱账号,然后在设置里选择POP3/SMTP/IMAP选项
然后将这些服务都打开
打开时系统会提醒你先填写一个授权码,这个授权码一定要记住
程序
然后就是代码部分的内容了
我的邮件是以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("<h1 style='color:red'>"+subject+"</h1>"
+"姓名:"+name+"<br/>"
+"电话:"+phone +"<br/>"
+"Email:"+Email +"<br/>"
+"内容:"+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
#邮箱账号
mailUsername=123456789@163.com
#邮箱授权码,不是账号登录密码,是你开启POP3/SMTP/IMAP服务时设置的授权码
mailPassword=123456789
#时间延迟
mailTimeout=25000
#收件人
mailTo=15138931676@163.com
这个亲测是成功的