Javaweb QQ邮箱发邮件功能

需要的jar包在附件中

<接上传功能后>

com.jspsmart.upload.File tempFile=upload.getFiles().getFile(0);

String FileName =tempFile.getFileName();          //上传文件的文件名

String FileNamePath= filePath+"/"+FileName;     //FileName 代表文件上传后的地址

 Properties props = new Properties();                                       // 创建Properties 类用于记录邮箱的一些属性

 props.put("mail.smtp.auth", "true");                                           // 表示SMTP发送邮件,必须进行身份验证

  props.put("mail.smtp.host", "smtp.qq.com");                          //此处填写SMTP服务器

  props.put("mail.smtp.port", "587");                                          //端口号                                                 
  props.put("mail.user", "*@qq.com");                                       // 此处填写你的账号
  props.put("mail.password", " **********");                              //  // 此处的密码就是前面说的16位STMP口令这边需要从qq邮箱中获得
  final String userName = props.getProperty("mail.user");
       final String password = props.getProperty("mail.password");
       Authenticator authenticator = new Authenticator() {

      protected PasswordAuthentication getPasswordAuthentication() {

   return new PasswordAuthentication(userName, password);                // 用户名、密码 

           }
       };

      Session mailSession = Session.getInstance(props, authenticator);

     MimeMessage message = new MimeMessage(mailSession);                             // 创建邮件消息
        
       InternetAddress form;                                                                                                    // 设置发件人
try {
form = new InternetAddress(
       props.getProperty("mail.user"));
try {
message.setFrom(form);
} catch (MessagingException e) {
 
e.printStackTrace();
}
} catch (AddressException e) {
 
e.printStackTrace();
}
InternetAddress to;
try {
to = new InternetAddress("*@qq.com");//  
try {
message.setRecipient(RecipientType.TO, to);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (AddressException e1) {
 
e1.printStackTrace();
}   
       try {
message.setSubject("简历");                                              // 设置邮件标题
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

     Multipart multipart = new MimeMultipart();
     BodyPart contentPart = new MimeBodyPart();                      // 设置邮件的文本内容
       try {
contentPart.setText("邮箱:"+emaill);
multipart.addBodyPart(contentPart);
BodyPart messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(FileNamePath);
messageBodyPart.setDataHandler(new DataHandler(source));                           // 添加附件的内容
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();              // 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码
messageBodyPart.setFileName("=?GBK?B?"
    + enc.encode(FileName.getBytes("GBK")) + "?=");
multipart.addBodyPart(messageBodyPart);//html.setFileName("=?GBK?B?" + enc.encode(file.getName().getBytes("GBK")) + "?=");
message.setContent(multipart);                                                                 // 将multipart对象放到message中
message.saveChanges();                                                                            // 保存邮件
} catch (MessagingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

  try {
        MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
        mc.addMailcap("text/html;; x-Java-content-handler=com.sun.mail.handlers.text_html");
        mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
        mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
        mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
        mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
        CommandMap.setDefaultCommandMap(mc);
Transport.send(message);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
        功能完美实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值