1. 程式人生 > >Javax.mail實現單發和群發郵件

Javax.mail實現單發和群發郵件

=========================注意事項=============================

使用自己郵箱的時候,一定要去郵箱設定裡 開啟郵件伺服器,然後獲取一個第三方客戶端登陸密碼,Java程式碼裡就用第三方密碼,不用以前的密碼

=========================java程式碼如下==========================

package duan;

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 SendMailUtil {
    
    // 設定伺服器
    private static String KEY_SMTP = "mail.smtp.host";
    private static String VALUE_SMTP = "smtp.163.com";
    // 伺服器驗證
    private static String KEY_PROPS = "mail.smtp.auth";
    private static boolean VALUE_PROPS = true;
    // 發件人使用者名稱、密碼
    private String SEND_USER = "
[email protected]
";
    private String SEND_UNAME = "15566930303";
    private String SEND_PWD = "libixin5210327";
    // 建立會話
    private MimeMessage message;
    private Session s;

    /*
     * 初始化方法
     */
    public SendMailUtil() {
        Properties props = System.getProperties();
        props.setProperty(KEY_SMTP, VALUE_SMTP);
        props.put(KEY_PROPS, "true");
        props.put("mail.smtp.auth", "true");
        //props.put("mail.smtp.port", "465");  
        s =  Session.getDefaultInstance(props, new Authenticator(){
              protected PasswordAuthentication getPasswordAuthentication() {
                  return new PasswordAuthentication(SEND_UNAME, SEND_PWD);
              }});
        s.setDebug(true);
        message = new MimeMessage(s);
    }

    /**
     * 單發
     */
    public void doSendHtmlEmail(String headName, String sendHtml,
            String[] receiveUser) {
        try {
            // 發件人
            InternetAddress from = new InternetAddress(SEND_USER);
            message.setFrom(from);
            
            int receiverLen = receiveUser.length;
            //群發
            for (int i = 0; i < receiverLen; i++) {
                InternetAddress toAddr = new InternetAddress(receiveUser[i]);
                message.addRecipient(javax.mail.Message.RecipientType.TO,toAddr);
            }
            // 郵件標題
            message.setSubject(headName);
            String content = sendHtml.toString();
            // 郵件內容,也可以使純文字"text/plain"
            message.setContent(content, "text/html;charset=GBK");
            message.saveChanges();
            Transport transport = s.getTransport("smtp");
            // smtp驗證,就是你用來發郵件的郵箱使用者名稱密碼
            transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
            // 傳送
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
            System.out.println("send success!");
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
    /**
     * 群發
     */
    public void doSendHtmlEmail(String headName, String sendHtml,
            String receiveUser) {
        try {
            // 發件人
            InternetAddress from = new InternetAddress(SEND_USER);
            message.setFrom(from);
            
            //單發
            InternetAddress to = new InternetAddress(receiveUser);
            message.setRecipient(Message.RecipientType.TO, to);
            
            // 郵件標題
            message.setSubject(headName);
            String content = sendHtml.toString();
            // 郵件內容,也可以使純文字"text/plain"
            message.setContent(content, "text/html;charset=GBK");
            message.saveChanges();
            Transport transport = s.getTransport("smtp");
            // smtp驗證,就是你用來發郵件的郵箱使用者名稱密碼
            transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
            // 傳送
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
            System.out.println("send success!");
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        SendMailUtil se = new SendMailUtil();
        //單發
        se.doSendHtmlEmail("寶貝我愛你", "寶貝我愛你", "
[email protected]
");
        //群發
        //String[] receiverAddr = {"[email protected]","[email protected]"};
        //se.doSendHtmlEmail("寶貝我愛你", "寶貝我愛你", receiverAddr);
        
        
    }
}

相關推薦

Javax.mail實現群發郵件

=========================注意事項============================= 使用自己郵箱的時候,一定要去郵箱設定裡 開啟郵件伺服器,然後獲取一個第三方客戶端登陸密碼,Java程式碼裡就用第三方密碼,不用以前的密碼 =========

安卓開發中傳送簡訊的方法 APP內簡訊 群發簡訊 APP跳轉到簡訊頁 單條簡訊 多條簡訊Intent跳轉

1.APP內部直接傳送短息 包括髮送單條簡訊 傳送多條簡訊 APP內部發送簡訊首先要獲取一個傳送簡訊的許可權 <uses-permission android:name="android.permission.SEND_SMS"/> 安卓6.0以上的手機要動態獲取到這個許可

Java Servlet3.0使用getPart/getParts實現檔案多檔案上傳

一、使用工具: (1)Firefox瀏覽器 (2)Eclipse 二、實現單檔案上傳 (1)Servlet 原始碼 package com.servlet; import java.io.IOExce

(3)websocket實現群聊

2  群聊圖   2.1 zhangsan 發給所有人的圖          2.2 傳送成功後     zhangsan的介面如下  lisi的介面如下 wangwu的介面如下 3 單聊圖  3.1 zhangsan傳送資訊圖如下  3.2傳送成功後  zh

Flask第二天-偏函式、LocalStack、請求上下文、websocket簡介以及實現群聊功能

    1.偏函式         from functools import partial              

nodejs-websocket 實現群聊

nodejs-websocket 實現單聊和群聊 下載nodejs-websocket https://github.com/sitegui/nodejs-websocket 最新公司有需求交給我一個任務,研究下關於websocket的即時通訊。寫了一個在上面的基礎上有優化了介面

使用Ajaxfileupload外掛分別實現檔案多檔案上傳

一.Ajaxfileupload上傳檔案 首先頁面jsp程式碼:需要引入jquery和ajaxfileupload.js <head> <meta http-equiv="Content-Type" content="text/html; charset

hadoop實現多表關聯

補充一個單錶鏈接的例子: ublic class Single { private static class SingleMapper extends Mapper<LongWritable, Text, Text,

利用Python實現的一個自動群發郵件的小腳本!(SMTP協議)

成功 負責 mail 發現 腳本 服務器 編碼 SM 比較 python3、利用SMTP實現自動發送郵件!   首先聲明,這個是偶然從別人的博客裏發現的,覺得比較有趣,就自身親自嘗試了一番,在此做了點兒比較詳細的整理和一點點小小的優化!此處為原博客的鏈接地址!   http

c#基於System.Net.Mail實現郵件功能

class rom ebo man att var () pre tex 1.添加引用   using System.Net.Mail; 2.發送郵件實現代碼 private void btnsend_Click(object sender, EventA

郵件實現詳解(四)------JavaMail 送(帶圖片附件)接收郵件

發送 網絡圖 發送對象 true n) com 訪問權限 sub map   好了,進入這個系列教程最主要的步驟了,前面郵件的理論知識我們都了解了,那麽這篇博客我們將用代碼完成郵件的發送。這在實際項目中應用的非常廣泛,比如註冊需要發送郵件進行賬號激活,再比如OA項目中利用郵

Java Mail 實現第三方郵件送功能

string .class 郵件 AD get als protocol subject fall   1 創建一個用於發送郵件的類 1 package com.latiny.service; 2 3 import java.io.IOExce

LumiSoft.Net,IMAP,郵件傳送,郵件郵件執行緒群發,Winfrom部分控制元件功能大彙總

最近給公司做了個郵件系統,這裡做個簡單的傳送郵件的小功能,分享給大家,程式碼功能差距不大。功能如下: 郵件帶多個附件實現 單發,群發,ListView顯示系統圖片,ListView中的資料從Excel 2010匯入,匯入時可以設定匯入格式,群發時動態記錄傳送狀態 原始碼下載

關於oozie在郵件的報錯Caused by: javax.mail.AuthenticationFailedException

今天在做在hue當中,實現oozie的排程然後傳送郵件到郵箱的操作報錯資訊如下:  org.apache.oozie.action.ActionExecutorException: EM007: Encountered an error whi

javax.mail.AhenticationFailedException: 535 Err / A secure connection is requiered(java郵件

Java發郵件的幾種方式: JavaMail Commons Email Spring Mail 實驗場景: Spring Mail、Web Project 具體描述: 郵件伺服器: s

Java使用javax.mail傳送郵件 解決收件人、件人名字亂碼問題

/*** 格式化 Name <[email protected]> 的地址* @param name 名字* @param email Email地址* @return 格式化的地址*/public static String formatAddres

再談用java實現Smtp郵件之Socket編程

~~ 成功 剛才 還要 登陸 computer and ont sys 很多其它內容歡迎訪問個人站點 http://icodeyou.com 前幾天利用Socket實現了用java語言搭建webserver,全程下來應該會對Socket這

nginx 實現高並高負載

water avi 權重 分配 pass 必須 顯示 term ssi 一、Nginx是如何實現高並發的 service nginx start之後,然後輸入#ps -ef|grep nginx,會發現Nginx有一個master進程和若幹個worker進程,這些w

Jenkins+docker實現應用更新

jenkins docker Jenkins+docker實現應用發布Jenkins:centos6.5 ip:192.168.83.84Docker:centos7.2 ip:192.168.83.60 一、安裝Jenkins最新版:sudo wget -O /etc/yum.repos.d/jen

利用表郵件

user 表單提交 strong response turn contact 端口 實現 tls 前提:配置settings.py EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend‘ EMAIL