1. 程式人生 > >使用javamail實現傳送郵件

使用javamail實現傳送郵件

1.需求

公司有個需求要將頻繁登入伺服器的ip地址及時進行郵件和簡訊報警,故要寫一個傳送郵件和簡訊的程式

2.問題描述

從網上down了一些java程式碼,不是較為理想,大部分都使用javamail來實現,傳送到網易郵箱沒什麼問題,但qq郵箱不行,網易郵箱接收到郵件後提醒不及時,安裝了360郵箱通後還是不太理想,故還是要解決傳送到QQ郵箱的問題

3.解決

最新QQ郵箱機制要將輸入密碼的地方改成開啟pop3/smtp的時候提供的驗證碼 即可

4.程式碼

傳送到QQ郵箱

private static boolean send_qqmail(String strMail, String strTitle, String strText){
        boolean
bret = false; try { final Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", "smtp.qq.com"); //你自己的郵箱 props.put("mail.user", "[email protected]"); //你開啟pop3/smtp時的驗證碼
props.put("mail.password", "xxxxx"); props.put("mail.smtp.port", "25"); props.put("mail.smtp.starttls.enable", "true"); Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { String userName = props.getProperty("mail.user"
); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用環境屬性和授權資訊,建立郵件會話 Session mailSession = Session.getInstance(props, authenticator); // 建立郵件訊息 MimeMessage message = new MimeMessage(mailSession); // 設定發件人 String username = props.getProperty("mail.user"); InternetAddress form = new InternetAddress(username); message.setFrom(form); InternetAddress to = new InternetAddress(strMail); message.setRecipient(RecipientType.TO, to); // 設定郵件標題 message.setSubject(strTitle); // 設定郵件的內容體 message.setContent(strText, "text/html;charset=UTF-8"); // 傳送郵件 Transport.send(message); bret = true; } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } catch (Exception e){ e.printStackTrace(); } return bret; }

傳送到網易郵箱

private static boolean send_163mail(String strMail, String strTitle, String strText){
        boolean bret = false;
        try
        {
            final Properties props = new Properties();
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", "smtp.163.com");

            // 發件人的賬號
            props.put("mail.user", "[email protected]");
            //發件人的密碼
            props.put("mail.password", "xxxx"); 

            // 構建授權資訊,用於進行SMTP進行身份驗證
            Authenticator authenticator = new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    // 使用者名稱、密碼
                    String userName = props.getProperty("mail.user");
                    String password = props.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            };
            // 使用環境屬性和授權資訊,建立郵件會話
            Session mailSession = Session.getInstance(props, authenticator);
            // 建立郵件訊息
            MimeMessage message = new MimeMessage(mailSession);
            // 設定發件人
            String username = props.getProperty("mail.user");
            InternetAddress form = new InternetAddress(username);
            message.setFrom(form);

            // 設定收件人
            InternetAddress to = new InternetAddress(strMail); 
            message.setRecipient(RecipientType.TO, to);

            // 設定郵件標題
            message.setSubject(strTitle);

            // 設定郵件的內容體
            message.setContent(strText, "text/html;charset=UTF-8");
            // 傳送郵件
            Transport.send(message);
            bret = true;
        }
        catch (AddressException e) {
             e.printStackTrace();
        }
        catch (MessagingException e) {
             e.printStackTrace();
        }
        catch (Exception e){
            e.printStackTrace();
        }
        return bret;
    }

測試部分

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public static void main(String[] args) {
        // TODO Auto-generated method stub
        if (send_qqmail("[email protected]", "測試QQ郵箱傳送", "<body><p>你們好嗎</p></body>"))
            System.out.println("QQ郵件傳送成功");

        if (send_163mail("[email protected]", "測試網易郵箱傳送", "<body><p>你們好嗎</p></body>"))
            System.out.println("網易郵件傳送成功");
    }

參考文章

相關推薦

JavaWeb中使用JavaMail實現傳送郵件功能例項詳解

現在很多的網站都提供有使用者註冊功能, 通常我們註冊成功之後就會收到一封來自注冊網站的郵件。郵件裡面的內容可能包含了我們的註冊的使用者名稱和密碼以及一個啟用賬戶的超連結等資訊。今天我們也來實現一個這樣的功能,使用者註冊成功之後,就將使用者的註冊資訊以Email的形式傳送到使

使用javamail實現傳送郵件

1.需求 公司有個需求要將頻繁登入伺服器的ip地址及時進行郵件和簡訊報警,故要寫一個傳送郵件和簡訊的程式 2.問題描述 從網上down了一些java程式碼,不是較為理想,大部分都使用javamail來實現,傳送到網易郵箱沒什麼問題,但qq郵箱不行,網易郵箱

JAVAmail簡單實現傳送郵件

Android在郵件客戶端的設計中,有兩種實現方法: 一、呼叫Android系統自帶的郵件服務 ,這種方法簡單易用,但是傳送郵件的賬號必須是gmail賬號 二、採用javamail功能包進行設計,不必侷限於特定郵箱,但是比前一種較麻煩 1、使用Android 自帶的

ActiveMQ入門系列之應用:Springboot+ActiveMQ+JavaMail實現非同步郵件傳送

現在郵件傳送功能已經是幾乎每個系統或網址必備的功能了,從使用者註冊的確認到找回密碼再到訊息提醒,這些功能普遍的會用到郵件傳送功能。我們都買過火車票,買完後會有郵件提醒,有時候郵件並不是買完票立馬就能收到郵件通知,這個就用到了非同步郵件傳送。 那怎麼實現郵件的非同步傳送呢? 很顯然,引入MQ是一個不錯的選擇

單純java程式碼實現傳送郵件

 這個是工具類直接執行main方法就可以傳送郵箱,細節方面看我另一篇文章 https://mp.csdn.net/postedit/84307897 package com.bgs.controller; import javax.mail.Authenticator

node.js實現傳送郵件功能

準備事項 QQ郵箱設定:進入QQ郵箱->設定->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務->開啟POP3/SMTP服務,並複製pass祕鑰 安裝nodemailer :npm install nodem

python實現傳送郵件

本文目錄 一 使用SMTP模組傳送郵件 二 傳送html格式郵件 三 傳送帶附件的郵件  四 Django傳送郵件 各大郵箱smtp伺服器及埠  qq郵箱配置smtp   一 使用SMTP模組傳送郵件

log4j實現傳送郵件功能

引言 最近預上線的一個機器人專案,因為這個專案中有很多的AI的東西,整個專案分為三部分組成,web工程——FS——NLU,整個web工程都是由我來負責,後面兩部分有大資料部門的東西負責,因為後面這兩部分對於我們貸後行業來說都是比較超前的,所以在整個連調的過程中會有很多的異常

wordpress使用阿里雲郵件推送服務實現傳送郵件

之前用騰迅雲時,配置了wordpress是可以使用郵件服務的,然而到了阿里雲,卻無法使用了,有人說是因為阿里雲關了25埠,但騰迅好像也關了。 百度看看有沒有其他方法,最終讓我找到個方法,可惜不是很完美,就是使用阿里雲郵件推送服務,不過只能免費傳送200封郵件。。。當然,總比沒有好 開啟網址是這樣的,如果沒有話

TempletMail 實現傳送郵件

話不多說,實現功能為主  1、引入phpmailer,   2、初始化(TP框架中) if ((new TempletMail())->OrdertenantSuccessful($info['email'], '', [])) { } else { } p

jenkins+ant+jmeter 使用javamail實現傳送自定義報告 (html報告檔案作為附件傳送)

        由於ant-jmeter目前的版本不支援javamail,所以傳送郵件的時候只能藉助jenkins自帶的Email Extension來發送郵件,但是該郵件僅僅是一個最最基礎的通知郵件,未能直接展示用例執行狀況,故考慮使用javamail傳送自

實現傳送郵件功能

原文出自:www.hangge.com 轉載請保留原文連結:http://www.hangge.com/blog/cache/detail_792.html 使用MessageUI.framework框架除了可以傳送簡訊,還能傳送Email,步驟如下: (

JAVA實現傳送郵件功能

/** * 傳送郵件功用方法 * @param mailTo * @param html * @param userName */ public void sendEmployeeCommon(String mailTo , String html , Stri

iOS 實現傳送郵件和簡訊

- (void)businessContactWithMail { Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (mailClass != nil) { // We

Spring boot 整合JavaMail服務傳送郵件

JavaMail是SUN提供給廣大Java開發人員的一款郵件傳送和接受的一款開源類庫,支援常用的郵件協議,如:SMTP、POP3、IMAP,開發人員使用JavaMail編寫郵件程式時,不再需要考慮底層的通訊細節如:Socket而是關注在邏輯層面。JavaMail可以傳送各種

thinkphp5中使用phpmailer實現傳送郵件功能

一、開啟SMTP服務(使用php傳送郵件需要用到SMTP服務,這裡以163郵箱的SMTP服務為例)。 1.登入163郵箱,在首頁上找到“設定”。 2.選擇開啟的服務,一般都全選,POP3/SMTP/IMAP,開啟SMTP服務就得先開通客戶授權碼。 3.點選開通客戶授權

Java Web(十三) 使用javamail進行傳送郵件,(使用QQ,163,新浪郵箱伺服器)

    加油加油。                     --WH 一、傳送郵件的原理     在瞭解其原理之前,先要知道兩個協議,SMTP和POP3       SMTP:Simple Mail Transfer Protocol,即簡單郵件傳輸協議,傳送郵件的協議,

thinkphp5中使用phpmailer實現傳送郵件功能 及自己遇到的坑

一、開啟SMTP服務(使用php傳送郵件需要用到SMTP服務,這裡以163郵箱的SMTP服務為例)。 1.登入163郵箱,在首頁上找到“設定”。 2.選擇開啟的服務,一般都全選,POP3/SMTP/IMAP,開啟SMTP服務就得先開通客戶授權碼。 3.點選

Spring+javamail+velocity傳送郵件

最精做到一個專案需要用到郵箱驗證,所研究了一下 首先需要jar包: org.springframework.context.support-3.1.2.RELEASE.jar (封裝了javamail的相關api) mail.jar;   velocity-1.4.jar

ASP.NET 實現傳送郵件 + 多個收件人 + 多個附件

       最近專案中需要實現傳送郵件+新增附件的功能,於是又學習了一下System.Net.Mail.MailMessage和System.Net.Mail.SmtpClient等幾個.Net中發郵件的幾個類,根據網上的一些程式碼,做了一個小Demo分享一下。