java郵件發(fā)送簡單實現代碼
本文實例為大家分享了java郵件發(fā)送的具體代碼,供大家參考,具體內容如下
我用的是maven項目,前臺頁碼不多說,自己傳郵箱地址進來就行。
只需要一個類實現,直接復制就可以
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ā)件郵箱標頭為“我們是銀行”
*/
public void sendMessage(String email) throws Exception {
Properties props = new Properties();
// 開啟debug調試
props.setProperty("mail.debug", "true");
// 發(fā)送服務器需要身份驗證
props.setProperty("mail.smtp.auth", "true");
// 設置郵件服務器主機名
props.setProperty("mail.host", "smtp.qq.com");
// 發(fā)送郵件協議名稱
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");
// 設置環(huán)境信息
Session session = Session.getInstance(props);
// 創(chuàng)建郵件對象
Message msg = new MimeMessage(session);
msg.setSubject("我們是銀行");
// 設置郵件內容
msg.setText("******這是一封驗證郵箱的郵件******\n 如果您有投資的意愿,請回復郵件,我們會有業(yè)務員跟您聯系!");
// 設置發(fā)件人,并設置標頭
msg.setFrom(new InternetAddress("*****@qq.com", "我們是銀行"));
// 獲得鏈接
Transport transport = session.getTransport();
// 連接郵件服務器,這里設置發(fā)件人的郵箱和密碼。如果是163的郵箱就把"smtp.qq.com"改成"smtp.163.com"
//其他的同理,不然連接不到郵件服務器
transport
.connect("smtp.qq.com", "***@qq.com", "*****密碼*******");
// 發(fā)送郵件
transport
.sendMessage(msg, new Address[] { new InternetAddress(email) });
// 關閉連接
transport.close();
}
}
注意導的包,是javax.mail的。建議直接復制就可以。
直接運行,去查看你發(fā)送的郵箱是否收到就可以了。
可能會出現這個異常:
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>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
MyBatis?Generator?ORM層面的代碼自動生成器(推薦)
Mybatis?Generator是一個專門為?MyBatis和?ibatis框架使用者提供的代碼生成器,也可以快速的根據數據表生成對應的pojo類、Mapper接口、Mapper文件,甚至生成QBC風格的查詢對象,這篇文章主要介紹了MyBatis?Generator?ORM層面的代碼自動生成器,需要的朋友可以參考下2023-01-01
Spring中Bean創(chuàng)建完后打印語句的兩種方法
這篇文章主要介紹了Spring中Bean創(chuàng)建完后打印語句的兩種方法,一個是實現InitializingBean接口,另一個使用@Bean注解和initMethod屬性,通過代碼示例介紹的非常詳細,感興趣的小伙伴可以參考閱讀2023-07-07
SpringBoot實現動態(tài)多線程并發(fā)定時任務
這篇文章主要為大家詳細介紹了SpringBoot實現動態(tài)多線程并發(fā)定時任務,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05

