zoukankan      html  css  js  c++  java
  • JAVAV EMAIL

    package a;

    import java.util.Date;
    import java.util.Properties;
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;

    public class MyMailSender2
    {
    // private String hostName = "smtp.qq.com"; //可以根据邮箱地址截取例如 123@qq.com,12344@163.com
    // private String userName = ""; //数据库获取
    // private String userPwd = ""; //授权码????
    // private String fromUserMail = "10.com"; //数据库获取
    // private String toUserMail = "ren3.com"; //数据库获取
    public void sendTestMail(String hostName,final String userName,final String userPwd,String fromUserMail,String toUserMail) throws AddressException, MessagingException
    {
    Properties mailProps = new Properties();
    mailProps.setProperty("mail.smtp.host", hostName);
    mailProps.setProperty("mail.smtp.starttls.enable", "true");
    mailProps.setProperty("mail.smtp.auth", "true");
    mailProps.setProperty("mail.smtp.quitwait", "false");

    //如果不要对服务器的ssl证书进行受信任检查,测添加以下语句

    mailProps.setProperty("mail.smtp.ssl.trust","*");

    Session mailSession = Session.getDefaultInstance(mailProps,
    new Authenticator()
    {
    protected PasswordAuthentication getPasswordAuthentication()
    {
    return new PasswordAuthentication(userName, userPwd);
    }
    });

    Message mailMessage = new MimeMessage(mailSession);
    mailMessage.setFrom(new InternetAddress(fromUserMail));
    mailMessage.setRecipients(Message.RecipientType.TO,
    InternetAddress.parseHeader(toUserMail, false));

    mailMessage.setSubject("This is a test mail.");//发送标题
    mailMessage.setText("This is a test mail for gmail");//发送内容
    mailMessage.setSentDate(new Date());

    Transport.send(mailMessage);
    }

    public static void main(String[] args)
    {
    try
    {
    new MyMailSender2().sendTestMail(null, null, null, null, null);
    //update邮件发送状态
    }
    catch (AddressException e)
    {
    e.printStackTrace();
    }
    catch (MessagingException e)
    {
    e.printStackTrace();
    }
    }
    }

    package a;

    import java.io.File;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.Address;
    import javax.mail.Message.RecipientType;
    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 ServSendEmailBySmtp {

    private static Properties prop;
    // 发件人
    private static InternetAddress sendMan = null;


    public static void sendHtmlAndAttach(String senduser,String sendpassword,
    String send_name, ArrayList<String> receiveuser,ArrayList<String> cc_user,
    String hostAddress,String title,String content_info,ArrayList<String[]> fileinfo) throws Exception {
    prop = new Properties();
    prop.put("mail.transport.protocol", "smtp"); // 指定协议
    prop.put("mail.smtp.host", hostAddress); // 主机
    prop.put("mail.smtp.port", 25); // 端口
    prop.put("mail.smtp.auth", "true"); // 用户密码认证
    prop.put("mail.debug", "true"); // 调试模式
    sendMan = new InternetAddress(senduser, send_name, "UTF-8");//发送的人员
    Address[] to_all=new Address[receiveuser.size()]; //发送人
    Address[] cc_all=new Address[cc_user.size()];//抄送人

    if(to_all !=null && to_all.length>0){
    for (int i = 0; i < receiveuser.size(); i++) {
    to_all[i]=new InternetAddress(receiveuser.get(i));
    }
    }

    if(cc_all !=null && cc_all.length>0){
    for (int i = 0; i < cc_user.size(); i++) {
    cc_all[i]=new InternetAddress(cc_user.get(i));
    }
    }

    // 1. 创建邮件会话
    Session session = Session.getDefaultInstance(prop);
    // 2. 创建邮件对象
    MimeMessage message = new MimeMessage(session);
    // 3. 设置参数:标题、发件人、收件人、发送时间、内容
    message.setSubject(title);
    // message.setSender(sendMan);
    message.setFrom (sendMan);//设置发送人名称
    //message.setRecipient(RecipientType.TO, new InternetAddress(receiveuser));//单个
    message.setRecipients(RecipientType.TO, to_all);
    message.setSentDate(new Date());
    message.addRecipients(RecipientType.CC, cc_all); //抄送
    // message.addRecipients(RecipientType.BCC, all);
    /*
    * 带附件(图片)邮件开发
    */
    // 构建一个总的邮件块
    MimeMultipart mixed = new MimeMultipart("mixed");
    // ---> 总邮件快,设置到邮件对象中
    message.setContent(mixed);
    // 左侧: (文本+图片资源)
    MimeBodyPart left = new MimeBodyPart();
    // 右侧: 附件

    // 设置到总邮件块
    mixed.addBodyPart(left);

    /******附件********/
    if (fileinfo!=null && fileinfo.size()>0) {
    for (int i = 0; i < fileinfo.size(); i++) {
    MimeBodyPart right = new MimeBodyPart();
    DataSource attr_ds = new FileDataSource(new File(fileinfo.get(i)[0]));
    DataHandler attr_handler = new DataHandler(attr_ds);
    right.setDataHandler(attr_handler);
    right.setFileName(MimeUtility.encodeWord(fileinfo.get(i)[1]));
    mixed.addBodyPart(right);
    }
    }

    /***************设置邮件内容: 多功能用户邮件 (related)*******************/
    // 4.1 构建一个多功能邮件块
    MimeMultipart related = new MimeMultipart("related");
    // ----> 设置到总邮件快的左侧中
    left.setContent(related);

    // 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源
    MimeBodyPart content = new MimeBodyPart();
    /* MimeBodyPart resource = new MimeBodyPart();

    // 设置具体内容: a.资源(图片)
    String filePath = ServSendEmailBySmtp.class.getResource("8.jpg").getPath();
    DataSource ds = new FileDataSource(new File(filePath));
    DataHandler handler = new DataHandler(ds);
    resource.setDataHandler(handler);
    resource.setContentID("8.jpg"); // 设置资源名称,给外键引用
    */
    // 设置具体内容: b.文本
    content.setContent(content_info, "text/html;charset=UTF-8");

    related.addBodyPart(content);
    // related.addBodyPart(resource);

    // 5. 发送
    Transport trans = session.getTransport();
    trans.connect(senduser, sendpassword);
    trans.sendMessage(message, message.getAllRecipients());
    trans.close();

    }
    @SuppressWarnings("static-access")
    public static void main(String[] args) throws Exception {
    ArrayList<String> arrayList1 = new ArrayList<String>();
    arrayList1.add("renbomonkey@163.com");
    ArrayList<String> arrayList2 = new ArrayList<String>();
    new ServSendEmailBySmtp().sendHtmlAndAttach("1097204589", "mgjgimuvlpgygiji",
    "1097204589@qq.com", arrayList1, arrayList2, "smtp.qq.com", "toncent:zhuti", "content:cneirong", null);
    }
    }

  • 相关阅读:
    [BZOJ1013][JSOI2008]球形空间产生器sphere 高斯消元
    [Luogu1848][USACO12OPEN]书架Bookshelf DP+set+决策单调性
    [BZOJ1025][SCOI2009]游戏 DP+置换群
    [BZOJ1024][SCOI2009]生日快乐 搜索
    [BZOJ2002][Hnoi2010]Bounce弹飞绵羊 LCT
    「BZOJ 4565」「HAOI 2016」字符合并「区间状压DP」
    「BZOJ 5161」最长上升子序列「状压DP」
    「SPOJ TTM 」To the moon「标记永久化」
    「学习笔记」字符串大礼包
    「CF724G」Xor-matic Number of the Graph「线性基」
  • 原文地址:https://www.cnblogs.com/jishumonkey/p/13452298.html
Copyright © 2011-2022 走看看