import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class JavaMail {
public void sendEmail(String smtpServer,String fromEmail,String password,String emailTo){
try
{
Properties props=new Properties();
props.put("mail.transport.protocol","smtp");
props.put("mail.smtp.host",smtpServer); //smtp.sina.com
props.put("mail.smtp.port","25");//端口号
props.put("mail.smtp.auth","true"); //开启身份验证
// props.put("mail.smtp.user", fromEmail);
// props.put("mail.smtp.password", "*******"); //在这输入密码,发邮件会报错
props.put("mail.debug", "true"); //debug
// Session mailsession=Session.getDefaultInstance(props,new SmtpAuth(fromEmail, "shining@163"));
Session mailsession=Session.getInstance(props);
Message msg=new MimeMessage(mailsession);
msg.setFrom(new InternetAddress(fromEmail));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(emailTo));
msg.setSentDate(new Date());
msg.setSubject("邮件标题");
msg.setText("邮件内容");
//Transport.send(msg);
msg.saveChanges();
Transport transport = mailsession.getTransport("smtp");
transport.connect(smtpServer, fromEmail,password); //连接
transport.sendMessage(msg, msg.getAllRecipients()); //发送邮件
transport.close();
msg.writeTo(System.out);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
JavaMail javaMial = new JavaMail();
new Servlet1().sendEmail("smtp.sina.com", "xxx@sina.com", "password", "123456@qq.com");
}
}
要注意的事(代码没有多少,但是经常出各种问题):
1.导入正确的jar包:activation.jar,mail.jar,附件有JavaMail需要的jar包;
2.使用的邮箱是否支持发邮件功能,我用163发不了,sina可以;
3.发邮件时要开启身份验证,并且不能像这样输入密码 props.put("mail.smtp.password", "*******");