java郵件發(fā)送簡單實現(xiàn)代碼
本文實例為大家分享了java郵件發(fā)送的具體代碼,供大家參考,具體內(nèi)容如下
我用的是maven項目,前臺頁碼不多說,自己傳郵箱地址進來就行。
只需要一個類實現(xiàn),直接復(fù)制就可以
package com.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 MySendMail {
/**
* @param ss
* @throws Exception
*/
/*
* 你只需要往sendMessage(String email)傳入的要發(fā)送的郵箱對象地址,再改下方法里的發(fā)送人信息就可以了
* 本文發(fā)件郵箱標(biāo)頭為“我們是銀行”
*/
public void sendMessage(String email) throws Exception {
Properties props = new Properties();
// 開啟debug調(diào)試
props.setProperty("mail.debug", "true");
// 發(fā)送服務(wù)器需要身份驗證
props.setProperty("mail.smtp.auth", "true");
// 設(shè)置郵件服務(wù)器主機名
props.setProperty("mail.host", "smtp.qq.com");
// 發(fā)送郵件協(xié)議名稱
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
// 設(shè)置環(huán)境信息
Session session = Session.getInstance(props);
// 創(chuàng)建郵件對象
Message msg = new MimeMessage(session);
msg.setSubject("我們是銀行");
// 設(shè)置郵件內(nèi)容
msg.setText("******這是一封驗證郵箱的郵件******\n 如果您有投資的意愿,請回復(fù)郵件,我們會有業(yè)務(wù)員跟您聯(lián)系!");
// 設(shè)置發(fā)件人,并設(shè)置標(biāo)頭
msg.setFrom(new InternetAddress("*****@qq.com", "我們是銀行"));
// 獲得鏈接
Transport transport = session.getTransport();
// 連接郵件服務(wù)器,這里設(shè)置發(fā)件人的郵箱和密碼。如果是163的郵箱就把"smtp.qq.com"改成"smtp.163.com"
//其他的同理,不然連接不到郵件服務(wù)器
transport
.connect("smtp.qq.com", "***@qq.com", "*****密碼*******");
// 發(fā)送郵件
transport
.sendMessage(msg, new Address[] { new InternetAddress(email) });
// 關(guān)閉連接
transport.close();
}
}
注意導(dǎo)的包,是javax.mail的。建議直接復(fù)制就可以。
直接運行,去查看你發(fā)送的郵箱是否收到就可以了。
可能會出現(xiàn)這個異常:
javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp
這是由于jar包沖突造成的,如果你也是maven,則只要添加下面代碼就行,在pom.xml中進行添加一下代碼。
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.0.2</version> </dependency>
如果還是不能解決,再在pom.xml中加入如下代碼
<exclusion> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-javamail_1.4_spec</artifactId> </exclusion> <exclusion> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-activation_1.1_spec</artifactId> </exclusion>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深入dom4j使用selectSingleNode方法報錯分析
本篇文章是對dom4j使用selectSingleNode方法報錯進行了詳細的分析介紹,需要的朋友參考下2013-05-05
SpringBoot+Mybatis+Vue 實現(xiàn)商品模塊的crud操作
這篇文章主要介紹了SpringBoot+Mybatis+Vue 實現(xiàn)商品模塊的crud操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
MyBatis注解開發(fā)之實現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢
本文主要詳細介紹了MyBatis注解開發(fā)中,實現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢,文中有詳細的代碼示例,對學(xué)習(xí)MyBatis有一定的參考價值,需要的朋友可以參考閱讀2023-04-04
Java批量轉(zhuǎn)換文件編碼格式的實現(xiàn)方法及實例代碼
這篇文章主要介紹了Java實現(xiàn) 批量轉(zhuǎn)換文件編碼格式的方法及實例代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04
Java泛型實現(xiàn)類型安全的通用類型轉(zhuǎn)換器
在開發(fā)中,我們常常需要在不同類型之間進行轉(zhuǎn)換,為了提高代碼的可讀性與安全性,Java的泛型機制提供了強大的類型檢查能力,下面我們就來看看如何通過泛型實現(xiàn)類型安全的通用轉(zhuǎn)換器2024-11-11
基于SpringMVC實現(xiàn)網(wǎng)頁登錄攔截
SpringMVC的處理器攔截器類似于Servlet開發(fā)中的過濾器Filter,用于對處理器進行預(yù)處理和后處理。因此,本文將為大家介紹如何通過SpringMVC實現(xiàn)網(wǎng)頁登錄攔截功能,需要的小伙伴可以了解一下2021-12-12

