java 实现邮件发送

1.下载一个mail.jar架包

http://download.csdn.net/detail/woainimax/9748744

2.AnnexMailService.java

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.Message.RecipientType;
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 AnnexMailService {
    private String host = "";
    private String from = "";
    private String to = "";
    private String affix = "";
    private String affixName = "";
    private String user = "";
    private String pwd = "";
    private String subject = "";

    public void setAddress(String from, String to, String subject) {
        this.from = from;
        this.to = to;
        this.subject = subject;
    }

    public void setAffix(String affix, String affixName) {
        this.affix = affix;
        this.affixName = affixName;
    }

    public void send(String host, String user, String pwd) {
        this.host = host;
        this.user = user;
        this.pwd = pwd;

        Properties props = new Properties();

        props.put("mail.smtp.host", host);

        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", Integer.valueOf(465));
        props.put("mail.smtp.ssl.enable", Boolean.valueOf(true));

        Session session = Session.getDefaultInstance(props);

        session.setDebug(true);

        MimeMessage message = new MimeMessage(session);
        try {
            message.setFrom(new InternetAddress(this.from));

            message.addRecipient(Message.RecipientType.TO, new InternetAddress(
                    this.to));

            message.setSubject(this.subject);

            Multipart multipart = new MimeMultipart();

            BodyPart contentPart = new MimeBodyPart();
            contentPart.setText("第二种方法···");
            multipart.addBodyPart(contentPart);

            BodyPart messageBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(this.affix);

            messageBodyPart.setDataHandler(new DataHandler(source));

            BASE64Encoder enc = new BASE64Encoder();
            messageBodyPart.setFileName("=?GBK?B?"
                    + enc.encode(this.affixName.getBytes()) + "?=");
            multipart.addBodyPart(messageBodyPart);

            message.setContent(multipart);

            message.saveChanges();

            Transport transport = session.getTransport("smtp");

            transport.connect(host, user, pwd);

            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

        AnnexMailService cn = new AnnexMailService();
        // 设置发件人地址、收件人地址和邮件标题
        cn.setAddress("[email protected]", "[email protected]", "text测试");
        // 设置要发送附件的位置和标题
        cn.setAffix("D:\\adcfg.json", "abcfg.json");
        // 设置smtp服务器以及邮箱的帐号和密码
        cn.send("smtp.163.com", "[email protected]", "****");
    }
}
时间: 2024-10-03 17:46:58

java 实现邮件发送的相关文章

java mail 邮件发送实例【搬】

说明:转自国外博客:欢迎查阅原作 该实例较新,简明易懂,值得新手借鉴 以gmail为例,注意: 1.通过TLS方式发送 1 package com.mkyong.common; 2 3 import java.util.Properties; 4 5 import javax.mail.Message; 6 import javax.mail.MessagingException; 7 import javax.mail.PasswordAuthentication; 8 import java

java mail邮件发送(带附件) 支持SSL

java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.util.Vector; public class MailSenderInfo { // 发送邮件的server的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 pr

java mail邮件发送(带附件)

java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.util.Vector; public class MailSenderInfo { // 发送邮件的服务器的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 priva

java实现邮件发送验证码

建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬间就好了.所以去申请个别的邮箱吧. 用邮件发送验证码,首先需要jar包.我写的代码只需要mail.jar,没有的话可以给我留言,我给你发个. 废话不说了直接上代码(这个代码就是个工具类直接用就好) package com.itheima.utils; import java.util.Properties; import ja

纯java实现邮件发送服务(亲测好用)

今天自己测试了一下用java代码实现发送有限的服务,非常简单.直接贴代码: 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.u

Java Mail邮件发送的简单实现

1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方面. 2.邮件发送的大致过程 1.构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法.此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利. 2.构建一个properties文件,该文件中存放SMTP服务器

工具类学习-java实现邮件发送激活码

问题:用java实现服务器发送激活码到用户邮件. 步骤一:如果是个人的话,确保在本地安装邮件服务器(易邮服务器)和邮件客户端(foxmail). 步骤二:导入jar包  mail.jar,其他的需要什么协议导什么jar. package cn.itcast.store.utils; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.M

Java实现邮件发送功能

import java.util.Properties; import javax.mail.Address; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class Sen

spring实现java的邮件发送

由于项目需要使用邮件发送,所以最近学习了一下利用spring机制来发送邮件.这里大致记录一下其实现. 首先,需要在项目中导入两个包,一个是mailapi-XX.jar,一个是smtp-xx.jar.其中xx代表版本号.倘若使用maven更简单了,直接添加: <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>

java SpringMVC 邮件发送配置及Code

首先是spring中的配置:(我里面使用了FreeMarker模板引擎) <!--邮件发送实现类-->     <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">         <property name="host" value="smtp.qq.com"/>