Java邮件发送

作者: JWking | 来源:发表于2019-07-23 13:17 被阅读0次

        使用Java应用程序发送 E-mail 十分简单,但需要在设备上安装 JavaMail API 和Java Activation Framework (JAF) 。另外需要把 mail.jar 和 activation.jar包导入项目,可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。还有最新版本的 JAF(版本 1.1.1)

    下面为Java代码实例

    实例1 简单QQ邮件发送

    import java.util.*;

    import javax.mail.*;

    import javax.mail.internet.*;

    //简单QQ邮件发送(包含身份验证)

    public class EmailTest1 {

    public EmailTest1(){

    String to ="@qq.com";                                        //收件人邮箱

            String from ="@qq.com";                           //发送人邮箱

            String host ="smtp.qq.com";                      //发送邮件的主机

            Properties pro = System.getProperties();  //获取系统属性

            pro.setProperty("mail.smtp.host",host);    //设置邮件服务器

            pro.put("mail.smtp.host", host);                //绑定属性值包括邮件服务器,发送人邮箱以及授权码

            pro.put("mail.smtp.auth","true");               //设置为需要身份验证

            pro.put("userName","发送人邮箱");

    pro.put("password","授权码");

    Session session  = Session.getDefaultInstance(pro,new Authenticator(){

    protected PasswordAuthentication getPasswordAuthentication() {

    return new PasswordAuthentication("发送人邮箱","授权码");

    //发送人邮箱,授权码

                }});

    try{

    MimeMessage message =new MimeMessage(session);

    message.setFrom(new InternetAddress(from));              //设置发送人信息

                message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));//添加收件人信息

    //群发邮件

    //void addRecipients(Message.RecipientType type,

    //                  Address[] addresses)

    //throws MessagingException

    message.setSubject("Java邮件发送测试1");        //设置邮件标题

    message.setText("简单邮件发送");                       //添加邮件内容

    Transport.send(message);                                   //发送邮件

    System.out.println("发送成功");

    }catch (MessagingException m){

    m.printStackTrace();

    }

    }

    }

    获取授权码按照以下进行操作

    邮箱设置 获取授权码

    简单QQ邮件发送测试结果如下

    邮件发送测试1结果 Java邮件发送测试1

    注意:Message.RecipientType type中type:要被设置为 TO, CC 或者 BCC,这里 CC 代表抄送、BCC 代表秘密抄送。

    实例2 简单QQ邮件发送(HTML格式)

        只需将在实例1的基础上,将其代码行中的message.setText("简单邮件发送");替换为message.setContent("<h1>This is actual message</h1>","text/html");即可。

    简单QQ邮件发送(HTML格式)测试结果如下

    Java邮件发送测试 2

    实例3 简单QQ邮件发送(带附件)

        在实例1的基础上进行修改即可,将代码行

    message.setSubject("Java邮件发送测试1");//设置邮件标题

    message.setText("简单邮件发送");//添加邮件内容

    Transport.send(message);//发送邮件

    替换为

    message.setSubject("Java邮件发送测试3");        //设置邮件标题

    BodyPart body =new MimeBodyPart();  //创建消息部分

    body.setText("这是消息内容:");            //文本消息

    Multipart mul =new MimeMultipart();      //创建多重消息

    mul.addBodyPart(body);                        //设置文本信息

    body =new MimeBodyPart();                 //添加附件

    String filename ="C:/Users/My/IdeaProjects/Java_Email/src/mail.txt";

    FileDataSource source =new FileDataSource(filename);

    body.setDataHandler(new DataHandler(source));

    body.setFileName(filename);

    mul.addBodyPart(body);

    message.setContent(mul);                 //发送完整信息

    简单QQ邮件发送(带附件)测试结果如下

    Java邮件发送测试3

    相关文章

      网友评论

        本文标题:Java邮件发送

        本文链接:https://www.haomeiwen.com/subject/srkglctx.html