使用JavaMail发送邮件

本文提供了一个使用Java发送带附件电子邮件的示例代码。通过配置SMTP服务器、发件人、收件人等信息,可以实现从Java应用程序中发送包含文本内容及文件附件的邮件。

代码如下:

package demo;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import sun.misc.BASE64Encoder;

public class MailSender {
    
    
public static void main(String[] args) {

        MailSender sender 
= new MailSender();
        sender.setHost(
"smtp.sina.com.cn");
        sender.setFromAddr(
"yyyyyyyyyy@sina.com");
        sender.setToAddr(
"xxxxxx@163.com");
        sender.setUsername(
"wwwwwwww");
        sender.setPassword(
"ssssssss");
        sender.setTitle(
"关于提高效率的几点想法");
        sender.setAttachPath(
"C:/singleUser.sql");
        sender.setAttachName(
"singleUser.sql");
        
        
try {
            sender.sendMail();
        }
 catch (Exception e) {
            e.printStackTrace();
        }

    }

    
    
public void sendMail() throws Exception{

        Properties props 
= new Properties();
        props.put(
"mail.smtp.host", getHost());
        props.put(
"mail.smtp.auth""true");
        Session session 
= Session.getDefaultInstance(props);
        session.setDebug(
true);
        MimeMessage message 
= new MimeMessage(session);
        message.setFrom(
new InternetAddress(getFromAddr()));
        message.addRecipient(Message.RecipientType.TO,
new InternetAddress(getToAddr()));
        message.setSubject(getTitle());
        Multipart multipart 
= new MimeMultipart();
        BodyPart contentPart 
= new MimeBodyPart();
        contentPart.setText(
"邮件的具体内容在此");
        multipart. addBodyPart(contentPart);
        
if(getAttachPath() != null && getAttachName() != null){
            BodyPart attachmentPart
= new MimeBodyPart();
            DataSource source 
= new FileDataSource(getAttachPath());
            attachmentPart.setDataHandler(
new DataHandler(source));
           BASE64Encoder enc 
= new BASE64Encoder();
            attachmentPart.setFileName(
"=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
            multipart.addBodyPart(attachmentPart);
        }

        message.setContent(multipart);
        message.saveChanges();
        Transport transport 
= session.getTransport("smtp");
        transport.connect(host, getUsername(), getPassword());
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }


    
private String host = null;
    
private String fromAddr = null;
    
private String toAddr = null;
    
private String username = null;
    
private String password = null;
    
private String title = null;
    
private String attachPath = null;
    
private String attachName = null;
    
    
public String getHost() {
        
return host;
    }


    
public void setHost(String host) {
        
this.host = host;
    }


    
public String getFromAddr() {
        
return fromAddr;
    }


    
public void setFromAddr(String fromAddr) {
        
this.fromAddr = fromAddr;
    }


    
public String getToAddr() {
        
return toAddr;
    }


    
public void setToAddr(String toAddr) {
        
this.toAddr = toAddr;
    }


    
public String getUsername() {
        
return username;
    }


    
public void setUsername(String username) {
        
this.username = username;
    }


    
public String getPassword() {
        
return password;
    }


    
public void setPassword(String password) {
        
this.password = password;
    }


    
public String getTitle() {
        
return title;
    }


    
public void setTitle(String title) {
        
this.title = title;
    }


    
public String getAttachPath() {
        
return attachPath;
    }


    
public void setAttachPath(String attachPath) {
        
this.attachPath = attachPath;
    }


    
public String getAttachName() {
        
return attachName;
    }


    
public void setAttachName(String attachName) {
        
this.attachName = attachName;
    }

}

 

这个是完整源码 python实现 Flask,Vue 【python毕业设计】基于Python的Flask+Vue物业管理系统 源码+论文+sql脚本 完整版 数据库是mysql 本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值