zoukankan      html  css  js  c++  java
  • javaMail

    邮件相关协议

    • SMTP
    • POP
    • IMAP
    • MIME

    SMTP:简单邮件传输协议,用于传送电子邮件。SMTP服务器把消息转发给用作接收消息的SMTP服务器,用户可以通过POP或IMAP协议获取消息。

    POP:邮局协议,当前版本为3,所以也称POP3,该协议主要用来接收邮件。

    IMAP:接收邮件的更高级协议,当前到第四版,也称IMAP4。

    MIME:多用途网际邮件扩充协议。不是邮件传输协议,主要是定义邮件的传输内容。

    Java Mail 简单邮件发送实例:

    package com.hml.mail;
    
    import java.util.Properties;
    
    import javax.mail.Address;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    public class SimpleMailSender {
        public static void main(String[] args) throws Exception {
            Properties props = new Properties();
            props.setProperty("mail.smtp.auth", "true");// 是否需要认证
            props.setProperty("mail.transport.protocol", "smtp"); // 邮件发送使用的协议
            Session session = Session.getInstance(props); // 获取默认的Seesion
            session.setDebug(true); // 设置Debug模式,这样在控制台就可以看到程序与邮件服务器的交互信息
            
            Message msg = new MimeMessage(session); // 创建邮件发送的消息
            msg.setText("你好吗?"); // 设置邮件发送的内容,此处为文本内容
            msg.setFrom(new InternetAddress("hml_vip@sina.com")); // 设置用哪个邮箱账号发送
        
            Transport transport = session.getTransport(); // 创建发送邮件的对象
            // 连接邮件服务器
            transport.connect("smtp.sina.com", 25, "hml_vip@sina.com", "******");
            transport.sendMessage(msg,
                    new Address[]{new InternetAddress("916812579@qq.com")}); // 发送邮件
    
            //transport.send(msg,new Address[]{new InternetAddress("itcast_test@sohu.com")});
            transport.close();
        }
    }


    发送HTML内容

    package com.hml.mail;
    
    import java.io.FileInputStream;
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.Message.RecipientType;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    public class SimpleMailSender {
        public static void main(String[] args) throws Exception {
    
            Properties props = new Properties();
            props.setProperty("mail.smtp.auth", "true");
            props.setProperty("mail.transport.protocol", "smtp");
            props.setProperty("mail.host", "smtp.sina.com");
            // 使用Authenticator认证
            Session session = Session.getInstance(props,
                    new Authenticator()
                    {
                        protected PasswordAuthentication getPasswordAuthentication()
                        {
                            return new PasswordAuthentication("hml_vip@sina.com","*****");
                        }
                    }
            );
            session.setDebug(true);
            
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("hml_vip@sina.com"));
            msg.setSubject("中文主题"); // 设置主题
            msg.setRecipients(RecipientType.TO, 
                    InternetAddress.parse("916812579@qq.com")); // 设置收件人
            msg.setRecipients(RecipientType.CC, 
                    InternetAddress.parse("916812579@qq.com")); // 设置抄送人
            msg.setRecipients(RecipientType.BCC, 
                    InternetAddress.parse("916812579@qq.com")); // 设置密送人
            msg.setContent("<span style='color:red'>中文呵呵呵</span>", "text/html;charset=gbk");
            Transport.send(msg);
        }
    }

    带附件的邮件

    package com.hml.mail;
    
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.util.Properties;
    
    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.Address;
    import javax.mail.Authenticator;
    import javax.mail.Message.RecipientType;
    import javax.mail.PasswordAuthentication;
    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;
    
    public class SimpleMailSender {
        public static void main(String[] args) throws Exception {
    
            Properties props = new Properties();
            props.setProperty("mail.smtp.auth", "true");
            props.setProperty("mail.transport.protocol", "smtp");
            props.setProperty("mail.host", "smtp.sina.com");
            Session session = Session.getInstance(props, new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("hml_vip@sina.com",
                            "******");
                }
            });
            session.setDebug(true);
            MimeMessage msg = new MimeMessage(session); //创建消息
            msg.setFrom(new InternetAddress("hml_vip@sina.com"));
            msg.setSubject(" ");
            msg.setReplyTo(new Address[] { new InternetAddress("916812579@qq.com") });
            msg.setRecipients(RecipientType.TO,
                    InternetAddress.parse("916812579@qq.com"));
    
            MimeMultipart msgMultipart = new MimeMultipart(); // 创建复杂的消息
            msg.setContent(msgMultipart); // 添加复杂的消息到消息中
    
            MimeBodyPart attch = new MimeBodyPart(); // 创建附件
            msgMultipart.addBodyPart(attch);
            DataSource ds = new FileDataSource(
                    "Java.txt");
            DataHandler dh = new DataHandler(ds);
            attch.setDataHandler(dh);
            attch.setFileName(MimeUtility.encodeText("java.txt")); // MimeUtility处理中文乱码
            Transport.send(msg);
    
        }
    }
  • 相关阅读:
    #从零开始学Swift2.0# No.4 枚举, 元组, 数组和字典
    #从零开始学Swift2.0# No.3 基本数据类型
    #从零开始学Swift2.0# No.2 运算符和表达式
    #从零开始学Swift2.0# No.1 初识Swift
    MacOS下SVN的使用
    在Xcode中制作.a文件
    在Xcode中制作Framework
    Objective-C中的Runtime
    汉语字典或者词典的简单的ios小demo
    ios开发-UI进阶-核心动画-时钟动画小案例
  • 原文地址:https://www.cnblogs.com/heml/p/4662828.html
Copyright © 2011-2022 走看看