话不多说,接着上一篇文章来,直接上代码
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class SendEmail {
public static void Send() throws AddressException, MessagingException, IOException {
/**
* 设置链接和邮箱属性
*
*/
Properties pos=new Properties();
//身份验证必须为true
pos.put("mail.smtp.auth", "true");
//设置smtp主机名
pos.put("mail.host", "smtp.qq.com");
//设置端口号
pos.put("mail.smtp.port","587");
//用户名
pos.put("mail.user", "******@qq.com");
// 此处的密码就是前面说的16位STMP口令
pos.put("mail.password", "*******");
//pos.put("mail.smtp.starttls.enable", "true");
/**
* 构建授权信息,用于进行SMTP进行身份验证
*/
Authenticator auth=new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
String userName = pos.getProperty("mail.user");
String password = pos.getProperty("mail.password");
return new PasswordAuthentication(userName,password);
}
};
//创建对话
Session session=Session.getInstance(pos, auth);
/**
* 设置邮件的相关内容属性
*/
MimeMessage msg=new MimeMessage(session);
//设置发件人
msg.setFrom(new InternetAddress(pos.getProperty("mail.user")));
//收件人 RecipientType.TO普通收件人 RecipientType.cc抄送 RecipientType.bcc密送
msg.setRecipients(RecipientType.TO, "954442325@qq.com");
//标题
msg.setSubject("这是一个标题");
//msg.setContent("你好 Email", "text/html;charset=utf-8"); 改成多部件的形式
//MimeMultipart 类似集合,装载主体部件
MimeMultipart mut=new MimeMultipart();
//主体部件邮件主题、内容
MimeBodyPart part1=new MimeBodyPart();
part1.setContent("你好 Email", "text/html;charset=utf-8");
mut.addBodyPart(part1);
//带附件的主体
MimeBodyPart part2=new MimeBodyPart();
//附件在本机的位置
part2.attachFile(new File("G:\\image\\d_r11_10_r1_c116.jpg"));
//附件在邮件中的显示名称
part2.setFileName(MimeUtility.encodeText("相机.jpg"));
//添加到MimeMultipart中
mut.addBodyPart(part2);
msg.setContent(mut);
/**
* 发件
*/
Transport.send(msg);
}
public static void main (String[] ags) {
try {
Send();
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}