溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用java實現(xiàn)一個郵件發(fā)送功能

發(fā)布時間:2020-11-11 16:23:20 來源:億速云 閱讀:141 作者:Leah 欄目:編程語言

利用java實現(xiàn)一個郵件發(fā)送功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

我用的是maven項目,前臺頁碼不多說,自己傳郵箱地址進來就行。

只需要一個類實現(xiàn),直接復制就可以

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調(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 如果您有投資的意愿,請回復郵件,我們會有業(yè)務(wù)員跟您聯(lián)系!");
 // 設(shè)置發(fā)件人,并設(shè)置標頭
 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();
 }
}

注意導的包,是javax.mail的。建議直接復制就可以。
直接運行,去查看你發(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)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI