您好,登錄后才能下訂單哦!
利用java實現一個郵件發送功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
我用的是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)傳入的要發送的郵箱對象地址,再改下方法里的發送人信息就可以了 * 本文發件郵箱標頭為“我們是銀行” */ public void sendMessage(String email) throws Exception { Properties props = new Properties(); // 開啟debug調試 props.setProperty("mail.debug", "true"); // 發送服務器需要身份驗證 props.setProperty("mail.smtp.auth", "true"); // 設置郵件服務器主機名 props.setProperty("mail.host", "smtp.qq.com"); // 發送郵件協議名稱 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"); // 設置環境信息 Session session = Session.getInstance(props); // 創建郵件對象 Message msg = new MimeMessage(session); msg.setSubject("我們是銀行"); // 設置郵件內容 msg.setText("******這是一封驗證郵箱的郵件******\n 如果您有投資的意愿,請回復郵件,我們會有業務員跟您聯系!"); // 設置發件人,并設置標頭 msg.setFrom(new InternetAddress("*****@qq.com", "我們是銀行")); // 獲得鏈接 Transport transport = session.getTransport(); // 連接郵件服務器,這里設置發件人的郵箱和密碼。如果是163的郵箱就把"smtp.qq.com"改成"smtp.163.com" //其他的同理,不然連接不到郵件服務器 transport .connect("smtp.qq.com", "***@qq.com", "*****密碼*******"); // 發送郵件 transport .sendMessage(msg, new Address[] { new InternetAddress(email) }); // 關閉連接 transport.close(); } }
注意導的包,是javax.mail的。建議直接復制就可以。
直接運行,去查看你發送的郵箱是否收到就可以了。
可能會出現這個異常:
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>
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。