java Email 的发送

本文提供了使用Java通过SMTP发送纯文本及带附件电子邮件的示例代码。包括设置邮件服务器、发送方与接收方地址、邮件主题与正文等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 需要的jar包

mail.jar

activation.jar

下载地址http://java.sun.com/products/javamail/downloads/index.html

 

一、纯文本发送

  1. import java.util.Date;
  2. import java.util.Properties;
  3. import javax.mail.Message;
  4. import javax.mail.Session;
  5. import javax.mail.Transport;
  6. import javax.mail.internet.InternetAddress;
  7. import javax.mail.internet.MimeMessage;
  8. public class SimpleTextEmail {
  9.     private String smtpServer;//email接收者的服务器地址 
  10.     private String from;//发送者的email地址 注意要带有@,或正确的email地址,否则会出现异常 
  11.     private String to;//接收者的email地址 
  12.     private String subject;//email标题 
  13.     private String body;//email正文 
  14.     
  15.     public SimpleTextEmail(String smtp,String from,String to,String subject,String body){
  16.         this.smtpServer=smtp;
  17.         this.from=from;
  18.         this.to=to;
  19.         this.subject=subject;
  20.         this.body=body;
  21.     }
  22.     public void sendEmail(){
  23.         try {
  24.               //设置smtp
  25.               Properties props = System.getProperties();
  26.               props.put("mail.smtp.host", smtpServer);
  27.               
  28.               //Session类定义了基本的邮件会话
  29.               Session session = Session.getDefaultInstance(props, null);
  30.               
  31.               Message msg = new MimeMessage(session);
  32.               
  33.               msg.setFrom(new InternetAddress(from));//设置发送者的email
  34.               
  35.               msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to, false));
  36.               //设置接收者
  37.               
  38.               msg.setSubject(subject);//设置email标题
  39.               
  40.               msg.setText(body);//设置email正文              
  41.              
  42.               msg.setSentDate(new Date());设置email发送的日期
  43.               
  44.               Transport.send(msg);//发送email
  45.         
  46.         } catch(SendFailedException e){
  47.             e.printStackTrace(); //接收者的email地址错误     
  48.         } catch(MessagingException e){
  49.             e.printStackTrace(); //smptServer地址错误
  50.         } catch (Exception e) {
  51.             e.printStackTrace();
  52.         }
  53.     }
  54. }

二、带附件的发送

  1. import java.util.Date;
  2. import java.util.Properties;
  3. import javax.mail.Message;
  4. import javax.mail.Session;
  5. import javax.mail.Transport;
  6. import javax.mail.internet.InternetAddress;
  7. import javax.mail.internet.MimeMessage;
  8. public class SimpleTextEmail {
  9.     private String smtpServer;//email接收者的服务器地址  
  10.     private String from;//发送者的email地址 注意要带有@,或正确的email地址,否则会出现异常  
  11.     private String to;//接收者的email地址  
  12.     private String subject;//email标题  
  13.     private String body;//email正文  
  14.     private String selectFileString;//附件的地址
  15.     
  16.     public SimpleTextEmail(String smtp,String from,String to,String subject,String body, String file){
  17.         this.smtpServer=smtp;
  18.         this.from=from;
  19.         this.to=to;
  20.         this.subject=subject;
  21.         this.body=body;
  22.         this.selectFileString=file;
  23.     }
  24.     public void sendEmail(){
  25.         try {
  26.               //设置smtp 
  27.               Properties props = System.getProperties();
  28.               props.put("mail.smtp.host", smtpServer);
  29.               
  30.               //Session类定义了基本的邮件会话 
  31.                 Session session = Session.getDefaultInstance(props, null);
  32.               
  33.               Message msg = new MimeMessage(session);
  34.               
  35.               msg.setFrom(new InternetAddress(from));//设置发送者的email 
  36.               
  37.               msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to, false));
  38.               //设置接收者 
  39.               
  40.                 msg.setSubject(subject);//设置email标题 
  41.               
  42.                 BodyPart messageBodyPart=new MimeBodyPart();
  43.             //Fill the message 
  44.           messageBodyPart.setText(BODY);
  45.           Multipart multipart=new MimeMultipart();
  46.           multipart.addBodyPart(messageBodyPart);
  47.           //配置附件          
  48.               messageBodyPart=new MimeBodyPart();
  49.           DataSource source=new FileDataSource(selectFileString);
  50.           messageBodyPart.setDataHandler(new DataHandler(source));//添加附件
  51.           messageBodyPart.setFileName(source.getName());//设置附件名 
  52.           multipart.addBodyPart(messageBodyPart);
  53.             
  54.           msg.setContent(multipart);
  55.           Transport.send(msg); //发送       
  56.         } catch(SendFailedException e){
  57.             e.printStackTrace(); //接收者的email地址错误      
  58.         } catch(MessagingException e){
  59.             e.printStackTrace(); //smptServer地址错误 
  60.         } catch (Exception e) {
  61.             e.printStackTrace();
  62.         }
  63.     }
  64. }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值