精华内容
下载资源
问答
  • java发送邮件代码
    2022-01-10 00:58:13

    java发送邮件首先需要通过对应的邮件服务转发到中间基站,再有接收方服务器接收邮件,转发给收件人,因此我们再发送邮件时需要先设定邮件发出服务(例如qq、网易等),在配置邮件发送协议以及发送人和接收人,最后设置邮件内容,此处我以正文中带有图片的代码为例!

    编写代码前,我们需要准备javax下的mail包和activation包。这个在文章的末位会提供下载地址,好了天冷屁股凉,我们直接上高速。。

    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    
    import java.util.Properties;
    
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import com.sun.mail.util.MailSSLSocketFactory;
    import javax.mail.internet.MimeMultipart;
    public class sendMailServes {
    	int i=1;
    	public  void sendMail(Session session, String model,String imgPath) throws Exception {
    		Properties properties = new Properties();
    		//设置发送邮件邮箱类型
    		properties.setProperty("mailhost", "smtp.qq.com");
    		//选择邮件发送协议
    		properties.setProperty("mail.transport.protocol","smtp");
    		//验证邮箱用户名密码
    		properties.setProperty("mail.setp.auth", "true");
    		//为邮箱设置SLL加密
    		MailSSLSocketFactory  ms = new MailSSLSocketFactory();
    		ms.setTrustAllHosts(true);
    		properties.put("mail.smtp.ssl.enable", "true");
    		properties.put("mail.smtp.ssl.socketFactory", ms);
    		
    		//创建session信息
    		
    		  session = session.getDefaultInstance(properties, new Authenticator(){
    			@Override
    			protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("发送人的邮箱地址", "密码");
                }
            });
    		//通过session得到transport对象
    		Transport transport = session.getTransport();
    		//使用邮箱的用户名和密码连上授权的服务器
    		transport.connect("smtp.qq.com","发送人的邮箱地址", "密码");
    		//创建邮件
    		//传送环境session
    		MimeMessage message = new MimeMessage(session);
    		//设置邮件发送人
    		message.setFrom("发送人邮件地址");
    		//设置邮件收件人
            message.setRecipients(Message.RecipientType.TO, "接收人的邮箱地址");
            //设置邮件主题
            message.setSubject("邮件主题");
            //设置图片属性
            
            MimeBodyPart image = new MimeBodyPart();
            DataHandler dh = new DataHandler(new FileDataSource("图片文件路径"));
            image.setDataHandler(dh);
            String imgId = i+".png";
            image.setContentID(imgId);//设置图片id
            
          //设置邮件正文内容
            MimeBodyPart text = new MimeBodyPart();
            //cid调用图片ID
            text.setContent("<h1 style='color: red'>您好!邮箱正文</h1><img src='cid:"+imgId+"'>", "text/html;charset=UTF-8");
    
            //描述数据关系
            MimeMultipart mm = new MimeMultipart();
            mm.addBodyPart(image);
            mm.addBodyPart(text);
            mm.setSubType("related");
            
            
          //将编辑好的数据关系放入message中
            message.setContent(mm);
          //保存修改
            message.saveChanges();
    
            //发送邮件
            transport.sendMessage(message, message.getAllRecipients());
    
            //关闭连接
            transport.close();
    		
    	}
    }
    

    mail包和activation包永久下载地址:

    链接:https://pan.baidu.com/s/15zDr2AlyA8y5Mpverk2aeQ 
    提取码:nwbk

    更多相关内容
  • java发送邮件工具

    2018-06-20 15:04:03
    java发送邮件工具类,用于java程序实现邮件的发送功能
  • JAVA发送邮件实现,发送邮件内容消息格式化,简单易操作
  • java 发邮件带excel附件,以流的形式发送附件,不生成excel文件
  • 本人在开发的时候遇到anroid中邮箱开发这一需求,当时寻找了很久这三个jar包(mail.jar,comms-email-1.5.jar,activation.jar),现在提供给有需要的朋友方便开发使用。
  • 1.普通邮件发送功能 这里的这个普通邮件发送功能是指普通的标题正文的形式的邮箱,比较简单,代码如下: package com.tdhc.common.util; import cn.hutool.core.collection.CollUtil; import ...
  • packagecom.zlz3907.mail; importjava.io.BufferedReader; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; importjava.io.InputStream; im
  • java发送邮件

    2016-07-25 16:16:45
    maven项目 如不使用maven 请自行添加jar包mail.jar ,commons-email-X.X.jar ,activation.jar
  • java发送邮件所需要的包,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API
  • java 发送邮件sdk

    2018-05-21 15:19:03
    java 发送邮件sdk ,实测有效,快速发送邮件java 发送邮件sdk
  • Java邮件发送.zip

    2018-10-26 11:27:38
    Java发送邮件,亲自测试,没有问题。目前支持简单Java邮件发送!
  • Java应用程序发送 E-mail 十分简单,这就是java发送邮件必不可少的两个jar包,收个3分意思一下
  • java发送邮件功能

    2018-03-22 17:09:03
    邮件发送,支持多个或单个附件的形式发送,同时抄送等功能也支持
  • 之前用163邮箱发邮件时明明是成功的,但是使用中国移动自己的邮箱时,无论如何在linux服务器中都发送不成功。下面小编给大家说下我是怎么解决的,一起看下吧
  • .subject("使用JavaMail发送混合组合类型的邮件测试主题") // .attachFiles(attachFiles) .content(contentBuf.toString()) .toRecipients(toRecipients); ServiceResponse<String> serviceResponse = ...
  • 对JavaMail做了封装,简化发送邮件步骤,自带封装JavaMail源码
  • java 发送邮件

    2018-06-30 11:41:22
    java 发送邮件 简单易使用,邮箱开启 pop3 smtp 服务支持新浪 等主流邮箱
  • java发送邮件邮件附件代码实例java发送邮件邮件附件代码实例java发送邮件邮件附件代码实例
  • NULL 博文链接:https://javavsxiaoming.iteye.com/blog/1787803
  • Java发送邮件

    2013-11-04 09:50:12
    不用再为发邮件一堆代码而痛苦了 介绍一下具体用法: 1 调用Email配置初始化方法: SendEmailUtil initEmailPorxy "smtp" "smtp 163 com" "yannannan2012@163 com" "password&...
  • 主要为大家详细介绍了Java通过exchange协议发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 文章目录邮箱相关的概念邮件收发协议邮件客户端邮件服务器邮件收发简要过程使用Java发送邮件(JavaMail的使用)1.jar包相关2.使用案例3.使用案例中相关说明 邮箱相关的概念 邮件收发协议 发送邮件协议:SMTP(简单...
  • java发送邮件,可带图片

    热门讨论 2013-04-15 08:27:56
    java发送邮件邮件中可带样式和图片,本人测试,很好用,可根据个人需求发送邮件
  • import java.io.File;import java.util.Date;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;impo...

    import java.io.File;

    import java.util.Date;

    import javax.activation.DataHandler;

    import javax.activation.FileDataSource;

    import javax.mail.Address;

    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 javax.mail.internet.MimeUtility;

    /**

    * 发送带附件的邮件

    *

    * 需要导入mail.jar

    */

    public class AttachmentMailSender {

    public static boolean sendMail(MailSenderInfo mailInfo) {

    // 判断是否需要身份认证

    MyAuthenticator authenticator = null;

    if (mailInfo.isValidate()) {

    // 如果需要身份认证,则创建一个密码验证器

    authenticator = new MyAuthenticator(mailInfo.getUserName(),

    mailInfo.getPassword());

    }

    // 根据邮件发送的属性和密码验证器构造一个发送邮件的session

    Session sendMailSession = Session.getInstance(mailInfo.getProperties(),

    authenticator);

    try {

    // 根据session创建一个邮件消息

    Message mailMessage = new MimeMessage(sendMailSession);

    // 创建邮件发送者地址

    Address from = new InternetAddress(mailInfo.getFromAddress());

    // 设置邮件消息的发送者

    mailMessage.setFrom(from);

    // 创建邮件的接收者地址,并设置到邮件消息中

    Address to = new InternetAddress(mailInfo.getToAddress());

    mailMessage.setRecipient(Message.RecipientType.TO, to);

    // 设置邮件消息的主题

    mailMessage.setSubject(mailInfo.getSubject());

    // 设置邮件消息发送的时间

    mailMessage.setSentDate(new Date());

    // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象

    Multipart mainPart = new MimeMultipart();

    // 创建一个包含HTML内容的MimeBodyPart

    BodyPart html = new MimeBodyPart();

    // 设置HTML内容

    html.setContent(mailInfo.getContent(), "text/html; charset=GBK");

    mainPart.addBodyPart(html);

    // 为邮件添加附件

    String[] attachFileNames = mailInfo.getAttachFileNames();

    if (attachFileNames != null && attachFileNames.length > 0) {

    // 存放邮件附件的MimeBodyPart

    MimeBodyPart attachment = null;

    File file = null;

    for (int i = 0; i < attachFileNames.length; i++) {

    attachment = new MimeBodyPart();

    // 根据附件文件创建文件数据源

    file = new File(attachFileNames[i]);

    FileDataSource fds = new FileDataSource(file);

    attachment.setDataHandler(new DataHandler(fds));

    // 为附件设置文件名

    attachment.setFileName(MimeUtility.encodeWord(

    file.getName(), "GBK", null));

    mainPart.addBodyPart(attachment);

    }

    }

    // 将MiniMultipart对象设置为邮件内容

    mailMessage.setContent(mainPart);

    // 发送邮件

    Transport.send(mailMessage);

    return true;

    } catch (Exception e) {

    e.printStackTrace();

    return false;

    }

    }

    public static void main(String[] args) {

    // 创建邮件信息

    MailSenderInfo mailInfo = new MailSenderInfo();

    mailInfo.setMailServerHost("smtp.sina.com.cn");

    mailInfo.setMailServerPort("25");

    mailInfo.setValidate(true);

    mailInfo.setUserName("***");

    mailInfo.setPassword("***");

    mailInfo.setFromAddress("[email protected]");

    mailInfo.setToAddress("[email protected]");

    mailInfo.setSubject("MyMail测试");

    mailInfo.setContent("我的邮件测试\n\rMy test mail\n\r");

    String[] fileNames = new String[3];

    fileNames[0] = "C:/temp/new.txt";

    fileNames[1] = "C:/temp/test.wav";

    fileNames[2] = "C:/temp/mary_photo.jpg";

    mailInfo.setAttachFileNames(fileNames);

    AttachmentMailSender.sendMail(mailInfo);

    }

    }

    展开全文
  • java发送邮件示例讲解

    2020-09-02 15:42:28
    主要为大家详细介绍了java发送邮件示例的全过程,温习邮件协议,感兴趣的小伙伴们可以参考一下
  • pom依赖 <dependency> <groupId>javax.mailgroupId> <artifactId>... return ResultMessage.error("邮件发送失败,有可能的问题为服务器url不存在或附件不存在,具体请看详细信息:"+e.getMessage()); } } }

    pom依赖

            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4.7</version>
            </dependency>
    

    EmailInfo实体类

    package com.lt.bus.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public class EmailInfo {
    
        private String host; //邮箱服务器主机
        private String port; //邮件服务器端口
        private String from; //发件人
        private String password; //授权码
        private String nickname; //发件人昵称
        private String subject; //邮件主题
        private String content; //邮件内容
        private String filePath; //附件路径,邮件可写多个,以|分割
        private String address; //收件人
    }
    
    

    发送邮件方法业务类

    package com.lt.bus.service.impl;
    
    import com.lt.bus.pojo.EmailInfo;
    import com.lt.bus.pojo.ResultMessage;
    import com.lt.bus.service.EmailService;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Service;
    
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.*;
    import javax.mail.internet.*;
    
    import java.io.UnsupportedEncodingException;
    import java.util.Date;
    import java.util.Properties;
    
    @Service
    public class EmailServiceImpl implements EmailService {
    
        Logger logger = LoggerFactory.getLogger(EmailServiceImpl.class);
    
        @Override
        public ResultMessage sendEmail(EmailInfo emailInfo) {
    
            Properties properties = new Properties();
            properties.put("mail.smtp.host",emailInfo.getHost());
            properties.put("mail.smtp.auth","true");
            Session session = Session.getInstance(properties);
            Message emailMessage = new MimeMessage(session);
    
            try {
                //发送人
                InternetAddress sender = new InternetAddress(emailInfo.getFrom()); //发送者账号
                sender.setPersonal(MimeUtility.encodeText(emailInfo.getNickname()));//昵称
                emailMessage.setFrom(sender);
    
                //收件人
                InternetAddress to = new InternetAddress(emailInfo.getAddress());//收件人账号
                emailMessage.setRecipient(Message.RecipientType.TO,to);
    
                //消息
                emailMessage.setSubject(MimeUtility.encodeText(emailInfo.getSubject()));//邮件主题
                emailMessage.setSentDate(new Date());
                MimeMultipart mimeMultipart = new MimeMultipart("mixed");//指定为混合关系
                emailMessage.setContent(mimeMultipart);
    
                //邮件内容
                MimeBodyPart htmlPart = new MimeBodyPart();
                htmlPart.setContent(emailInfo.getContent(),"text/html;charset=UTF-8");
    
                //组装内容
                mimeMultipart.addBodyPart(htmlPart);
    
                //组装附件
                String filePath = emailInfo.getFilePath();
                if(null != null && !"".equals(filePath)){
                    //ToDo 此处可携带多个附件,以|分割****************
                    if(filePath.indexOf("|")<0){
                        MimeBodyPart file = new MimeBodyPart();
                        FileDataSource file_datasource = new FileDataSource(filePath);
                        DataHandler dh = new DataHandler(file_datasource);
                        file.setDataHandler(dh);
                        //附件区别内嵌内容的一个特点是有文件名,为防止中文乱码要编码
                        file.setFileName(MimeUtility.encodeText(dh.getName()));
                        mimeMultipart.addBodyPart(file);
                    }else{
                        String[] filePaths = filePath.split("\\|");
                        for(int i=0;i<filePaths.length;i++){
                            MimeBodyPart file = new MimeBodyPart();
                            FileDataSource file_datasource = new FileDataSource(filePaths[i]);
                            DataHandler dh = new DataHandler(file_datasource);
                            file.setDataHandler(dh);
                            //附件区别内嵌内容的一个特点是有文件名,为防止中文乱码要编码
                            file.setFileName(MimeUtility.encodeText(dh.getName()));
                            mimeMultipart.addBodyPart(file);
                        }
                    }
                }
    
                emailMessage.saveChanges();
                Transport transport = session.getTransport("smtp");
                transport.connect(emailInfo.getHost(), Integer.parseInt(emailInfo.getPort()),emailInfo.getFrom(), emailInfo.getPassword());
                transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
                transport.close();
                return ResultMessage.ok("邮件发送成功!");
            } catch (AddressException e) {
                logger.error("邮件发送失败,错误原因:"+e.getMessage());
                return ResultMessage.error("请检查邮箱地址:"+e.getMessage());
            } catch (UnsupportedEncodingException e) {
                logger.error("邮件发送失败,错误原因:"+e.getMessage());
                return ResultMessage.error("转码异常,请查看详细信息"+e.getMessage());
            } catch (NoSuchProviderException e) {
                logger.error("邮件发送失败,错误原因:"+e.getMessage());
                return ResultMessage.error("邮件发送失败,详细错误原因:"+e.getMessage());
            }catch (MessagingException e) {
                logger.error("邮件发送失败,错误原因:"+e.getMessage());
                return ResultMessage.error("邮件发送失败,有可能的问题为服务器url不存在或附件不存在,具体请看详细信息:"+e.getMessage());
            }
        }
    }
    
    
    展开全文
  • 可以发送的例子,很方便嵌入到系统中来开发功能,支持多附件,多人抄送!
  • Java发送邮件的简单demo。亲测可用。
        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-mail</artifactId>
            </dependency>
    package com.simons.utils;
    
    public class EmailAuthInfo {
        private String userCount;//用户账户
        private String authCode;//授权码
        private String smtpAdr;//smtp地址
        private String sendTo;//收件人
    
        EmailAuthInfo(){
            this.userCount = "yue51259@163.com";
            this.smtpAdr  = "smtp.163.com";
            this.authCode = "16位授权码";
            this.sendTo = "收件人邮箱:aa@qq.com";
        }
    
        public String getUserCount() {
            return userCount;
        }
    
        public void setUserCount(String userCount) {
            this.userCount = userCount;
        }
    
        public String getAuthCode() {
            return authCode;
        }
    
        public void setAuthCode(String authCode) {
            this.authCode = authCode;
        }
    
        public String getSmtpAdr() {
            return smtpAdr;
        }
    
        public void setSmtpAdr(String smtpAdr) {
            this.smtpAdr = smtpAdr;
        }
    
        public String getSendTo() {
            return sendTo;
        }
    
        public void setSendTo(String sendTo) {
            this.sendTo = sendTo;
        }
    }
    
    package com.simons.utils;
    
    import com.sun.mail.util.MailSSLSocketFactory;
    
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.security.GeneralSecurityException;
    import java.util.Properties;
    
    public class SendEamil {
        public static void main(String[] args) throws MessagingException, GeneralSecurityException {
            //创建一个配置文件并保存
            Properties properties = new Properties();
    
            properties.setProperty("mail.host","smtp.163.com");
    
            properties.setProperty("mail.transport.protocol","smtp");
    
            properties.setProperty("mail.smtp.auth","true");
            EmailAuthInfo emailAuthInfo = new EmailAuthInfo();
    
            //QQ存在一个特性设置SSL加密
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            properties.put("mail.smtp.ssl.enable", "true");
            properties.put("mail.smtp.ssl.socketFactory", sf);
    
            //创建一个session对象
            Session session = Session.getDefaultInstance(properties, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(emailAuthInfo.getUserCount(),emailAuthInfo.getAuthCode());
                }
            });
    
            //开启debug模式
            session.setDebug(true);
    
            //获取连接对象
            Transport transport = session.getTransport();
    
            //连接服务器
            transport.connect(emailAuthInfo.getSmtpAdr(),emailAuthInfo.getUserCount(),emailAuthInfo.getAuthCode());
    
            //创建邮件对象
            MimeMessage mimeMessage = new MimeMessage(session);
    
            //邮件发送人
            mimeMessage.setFrom(new InternetAddress(emailAuthInfo.getUserCount()));
    
            //邮件接收人
            mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(emailAuthInfo.getSendTo()));
    
            //邮件标题
            mimeMessage.setSubject("HAMT“超大预警”");
    
            //邮件内容
            mimeMessage.setContent("尊敬的信管专员:用户WX1111680发送超大附件xxxx,具体信息如下。请您审核","text/html;charset=UTF-8");
    
            //发送邮件
            transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());
    
            //关闭连接
            transport.close();
    //        log.info("邮件发送成功");
            System.out.println("邮件发送成功");
        }
    }
    
    

     邮件发送成功。具体原理不解释了。网上都有。其他版本的邮件差不多是这样子。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 183,367
精华内容 73,346
关键字:

java发送邮件

java 订阅
友情链接: noese__iosxream.rar