1. 程式人生 > >Java傳送郵件簡單實現以及問題的解決

Java傳送郵件簡單實現以及問題的解決

利用Java傳送郵件的過程主要有一下步驟:

  1. 建立Session物件,配置屬性
  2. 利用Session建立Message物件,然後設定發件人、收件人、郵件主題和正文
  3. 利用Transport物件傳送郵件

需要的jar有2個:activation.jar和mail.jar

程式碼如下(這裡我以網易163郵箱為例):

public class SendMailUtil {
	/**
	 * 傳送郵件
	 * @param to   郵箱收件人
	 */
	public static void  sendMail(String to){
	boolean isSSL = true;
        String host = "smtp.163.com";
        int port = 465;
        String from = "
[email protected]
"; boolean isAuth = true; final String username = "[email protected]";//郵箱賬號 final String password = "********";//這裡的密碼指的是郵箱授權碼,下邊會有介紹 //1、建立session,配置屬性 Properties props = new Properties(); props.put("mail.smtp.ssl.enable", isSSL); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); props.put("mail.smtp.auth", isAuth); Session session = Session.getDefaultInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); //2、建立郵件物件 try{ Message message=new MimeMessage(session); message.setFrom(new InternetAddress(from));//郵件的傳送人 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//郵件的收件人 message.setSubject("主題");//郵件主題也就是標題 message.setContent("郵件的正文", "text/html;charset=UTF-8"); //3、傳送郵件 Transport.send(message); }catch (Exception e) { e.printStackTrace(); } } /** * 測試方法 * @param args */ public static void main(String[] args) { sendMail("
[email protected]
"); } }
遇到的問題:(如果上邊郵箱密碼你寫的不是授權碼就會報這個錯)
javax.mail.AuthenticationFailedException: failed to connect
at javax.mail.Service.connect(Service.java:322)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at javax.mail.Transport.send0(Transport.java:190
)
at javax.mail.Transport.send(Transport.java:120)
at cn.hut.cg.util.SendMailUtil.sendMail(SendMailUtil.java:54)
at cn.hut.cg.util.SendMailUtil.main(SendMailUtil.java:67)


解決方法:

1、需要到你的郵箱中開啟服務:開啟POP3服務 和 SMTP服務


然後要發簡訊繫結手機,設定客戶端授權密碼 ,這裡的授權密碼就是上邊所說的授權密碼。


2、確保POP3服務和SMTP服務都選擇上,設定完成後,問題也就解決了。


相關推薦

Java傳送郵件簡單實現以及問題的解決

利用Java傳送郵件的過程主要有一下步驟: 建立Session物件,配置屬性利用Session建立Message物件,然後設定發件人、收件人、郵件主題和正文利用Transport物件傳送郵件 需要的jar有2個:activation.jar和mail.jar 程式碼如下

Java郵件傳送簡單實現

java郵件傳送:利用現有的郵件賬戶傳送郵件,比如說,我在網易註冊一個郵箱賬戶,通過JAVA操控,我可以不親自登入網易郵箱,讓程式自動的使用網易郵箱傳送郵件。這一機制被廣泛的用在註冊啟用和垃圾郵件

java傳送郵件帶附件、格式、可以實現轉發、祕密轉發等操作

最近在研究java傳送郵件帶附件、格式、可以實現轉發、祕密轉發等操作的元件,下面把程式碼和大家共享下,本來想做資源共享的,但是下載就會消耗大家的積分,沒積分就沒得看了,想想還是算了,直接發出來了,個人知識一點點的研究,敬請大家指點 2010-12-14  package njfc.co

java傳送郵件新增附件-附件名有問題解決

新增附件時為setFileName需要指定utf-8的編碼格式,否則解析不出來會隨機給一個類似下面名稱的附件名 tcmime.1882.2250.7267.bin 正確的set方式: MimeUtility.encodeText(file.getName(), "UTF-8"

java 傳送郵件(一) 建立簡單郵件 (JavaMail)

電子郵件的應用非常廣泛,例如在某網站註冊了一個賬戶,自動傳送一封歡迎郵件,通過郵件找回密碼,自動批量傳送活動資訊等。但這些應用不可能和我們自己平時發郵件一樣,先開啟瀏覽器,登入郵箱,建立郵件再發送。本文將簡單介紹如何通過 Java 程式碼來建立電子郵件,並連線郵件伺服器傳送郵件。 1. 電子

Java傳送郵件找回密碼功能的實現

傳送郵件功能 找回密碼的功能幾乎是所有的專案所必備的功能,目前最流行的方式之一便是通過傳送郵件的方式,傳送給使用者修改密碼的連結,使用者通過登入郵箱找到連結地址,從而完成密碼的重置。這樣的方式相對來說比較安全可靠。這種方式的第一步便是傳送郵件。 準備工作

java傳送郵件實現

private String host = "mail.vanke.com"; // smtp伺服器 private String user = "FIAssistant"; // 使用者名稱 private String pwd = "[email

java傳送郵件解決不被被當成垃圾郵件

//登入驗證 static class SmtpAuth extends javax.mail.Authenticator {        private String user , password ;          public void getuserinfo(

Java棧的簡單實現

元素 mys next() str stat 頭指針 出棧 push [] * 數據結構與算法Java實現 棧 * * @author 小明 * */ public class MyStack { private Node top;// 頭指針

Java 單鏈表簡單實現

pre println ret 返回 .data del span 鏈表 font 實現功能並不完全,只有添加,刪除,和遍歷功能,後續還會繼續添加 定義節點屬性 class Node{ //定義節點屬性 public int Data; public No

JAVA——黑白棋簡單實現

package Reversi_JCoder; import java.awt.*; import java.awt.Button; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.

java傳送郵件例項

JavaMail傳送郵件到qq郵箱:前提是QQ郵箱裡帳號設定要開啟POP3/SMTP協議,步驟如下: ​​​​​​​1. 登陸你的QQ即可,找到QQ郵箱圖示。 2.進入郵箱後後點選設定。     3.找到賬戶。 4.往下拉將POP3/SMTP開啟。&nb

20180827(02)- Java傳送郵件

  Java 傳送郵件 使用Java應用程式傳送E-mail十分簡單,但是首先你應該在你的機器上安裝JavaMail API 和Java Activation Framework (JAF) 。 你可以在 JavaMail (Version 1.2) 下載最新的版本。你可以再 在JAF (Ve

基於SSM的spring傳送郵件實現

郵件傳送功能是我們在開發中非常常見的一個需求,對於各種賬號的註冊繫結和賬號啟用都是非常好用的。因此今天我們來學習一下在spring中實現傳送郵件的功能。 1.匯入jar包。首先我們需要在我們spring專案中新增以下兩個jar包(我是使用的maven所以直接配置依賴資訊)  

Java反射的簡單實現

一.Java的反射機制概述與場景     JAVA反射機制是在執行狀態中,對於任意一個類(class檔案),都能夠知道這個類的所有屬性和方法; 對於任意一個物件,都能夠呼叫它的任意一個方法和屬性;  這種動態互毆的資訊以及動態呼叫物件的方法的功能稱

SMTP傳送郵件——Python實現

有的時候我們的指令碼需要傳送個郵件提醒我們事情乾的怎麼樣了,所以需要程式碼來實現自動傳送郵件。 請看: def email_module(output): import smtplib from email.mime.text import MIMEText

C# 傳送郵件功能實現

郵件傳送功能在OA以及一些網站驗證中很常用。下面是郵件傳送的一個函式,引數傳入收件人地址,郵件主題,郵件內容,讀者可根據自己的需求新增郵件的附件或者抄送人等。  /// <summary> /// 傳送郵件 /// </su

java----傳送郵件2

1.新增jar包  <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-emai

java執行命令列,以及解決卡死問題

java可以執行本地命令列,但是有一個坑,命令執行後,已經執行完畢,但是卡死不返回,這是因為: 命令會返回兩個輸出流,正確的返回流,和錯誤的返回流 一般程式的做法是先迴圈讀正確的返回流,再讀錯誤的返回流,當正確的返回流讀不完的時候,有可能錯誤的返回流已經佔滿了快取,所以導致了卡死, 解決

springboot傳送郵件實現例子

springboot是集大成者,對於傳送郵件的功能也不例外。而且往往是原來的功能實現更簡單,方便。更符合Facade Pattern。 下面就是springboot傳送郵件的實現例子,程式碼已封裝好,按照提示的步驟配置好就可以直接用了。當然如果你是新搭的專案,需要引入springboot的mail包