使用Java實現(xiàn)qq郵箱發(fā)送郵件
本文實例為大家分享了Java操作qq郵箱發(fā)送郵件的具體代碼,供大家參考,具體內(nèi)容如下
今天嘗試了使用QQ郵箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)來進(jìn)行發(fā)送郵件?。ㄟ@些個服務(wù)就是些協(xié)議,只有開啟了之后就可以做一些操作)
步驟
1、登錄QQ郵箱> 設(shè)置 > 賬戶
2、找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)
開啟 POP3/SMTP 服務(wù) > 拿到授權(quán)碼
3、創(chuàng)建maven項目
4、在pom.xml導(dǎo)入依賴包
<!-- java發(fā)送郵件jar包 --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
5、創(chuàng)建java類 類名取為:SendEmailManger(注意包別導(dǎo)錯了)
package com.xdl.util; import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * 郵件發(fā)送 * QQ郵箱--->別的郵箱 * @author shiyunpeng */ public class SendEmailManger extends Thread { private String mailAdr;//郵箱 private String content;//郵件的內(nèi)容 private String subject;//郵件的題目 public SendEmailManger(String mailAdr, String subject, String content) { super(); this.mailAdr = mailAdr; this.subject = subject; this.content = content; } @Override public void run() { super.run(); try { sendMail(mailAdr, subject, content); } catch (Exception e) { e.printStackTrace(); } } private void sendMail(String mailAdr, String subject, String content) throws Exception { //加密的郵件套接字協(xié)議工廠 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); final Properties props = new Properties(); // 表示SMTP發(fā)送郵件,需要進(jìn)行身份驗證 props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", "smtp.qq.com"); // smtp登陸的賬號、密碼 ;需開啟smtp登陸 props.setProperty("mail.debug", "true"); props.put("mail.user", "發(fā)送者郵箱"); props.put("mail.password", "授權(quán)碼"); // 特別需要注意,要將ssl協(xié)議設(shè)置為true,否則會報530錯誤 props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.socketFactory", sf); Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { // 用戶名、密碼 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用環(huán)境屬性和授權(quán)信息,創(chuàng)建郵件會話 Session mailSession = Session.getInstance(props, authenticator); // 創(chuàng)建郵件消息 MimeMessage message = new MimeMessage(mailSession); // 設(shè)置發(fā)件人 try { InternetAddress form = new InternetAddress(props.getProperty("mail.user")); message.setFrom(form); // 設(shè)置收件人 InternetAddress to = new InternetAddress(mailAdr); message.setRecipient(Message.RecipientType.TO, to); // 設(shè)置抄送 // InternetAddress cc = new InternetAddress("591566764@qq.com"); // message.setRecipient(RecipientType.CC, cc); // 設(shè)置密送,其他的收件人不能看到密送的郵件地址 // InternetAddress bcc = new InternetAddress("mashen@163.com"); // message.setRecipient(RecipientType.CC, bcc); // 設(shè)置郵件標(biāo)題 message.setSubject(subject); // 設(shè)置郵件的內(nèi)容體 message.setContent(content, "text/html;charset=UTF-8"); // 發(fā)送郵件 Transport.send(message); } catch (MessagingException e) { e.printStackTrace(); } } public static void main(String[] args) { SendEmailManger d = new SendEmailManger("接收郵件的郵箱", "syp:", "我呵呵,啊打: <br/><br/>加油哦!?。。?..."); d.start(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nodejs連接dubbo服務(wù)的java工程實現(xiàn)示例
這篇文章主要介紹了在項目遷移中,nodejs連接dubbo服務(wù)的java工程實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03詳解Java使用super和this來重載構(gòu)造方法
這篇文章主要介紹了詳解Java使用super和this來重載構(gòu)造方法的相關(guān)資料,這里提供實例來幫助大家理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08Hibernate雙向多對多映射關(guān)系配置代碼實例
這篇文章主要介紹了Hibernate雙向多對多映射關(guān)系配置代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹前 中 后序遍歷
樹是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹中稱為結(jié)點)按分支關(guān)系組織起來的結(jié)構(gòu),很象自然界中的樹那樣。樹結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機(jī)構(gòu)都可用樹形象表示2022-01-01