日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java实现qq邮箱发送附件和图片

發布時間:2024/3/13 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现qq邮箱发送附件和图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

生成授權碼

1.進入設置賬戶里面,把第一個服務開啟

2.點生成授權碼,在代碼中當成是密碼

3.集成到springboot里面,引入依賴包

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

4.測試郵箱代碼

public static void main(String[] args) {try {Properties prop=new Properties();//設置qq郵箱服務器、"mail.host", "smtp.qq.com")prop.setProperty("mail.host","stmp.qq.com");//郵箱發送協議"mail.transport.protocol", "smtp"prop.setProperty("mail.transport.protocol","stmp");//需要驗證用戶賬號和密碼"mail.smtp.auth", "true"prop.setProperty("mail.smpt.protocol","stmp");//設置SSL加密prop.put("mail.smtp.ssl.enable", "true");// prop.put("mail.smtp.ssl.socketFactory", sf);MailSSLSocketFactory ssl=new MailSSLSocketFactory();ssl.setTrustAllHosts(true);prop.put("mail.stmp.protocol","true");prop.put("mail.stmp.protocol",ssl);//使用javaMail發送郵件的5個步驟//1.創建整個應用程序所需要的環境信息的session信息Session session=Session.getDefaultInstance(prop, new Authenticator() {public PasswordAuthentication getPasswordAuthentication() {//發郵件的賬號和授權碼return new PasswordAuthentication("","");};});//開啟session的debug模式,這樣就可以查看程序發送email的運行狀態session.getDebug();//2.通過session得到transportTransport transport = session.getTransport();//3.使用郵箱的用戶名和授權碼鏈接郵箱服務器//第一個參數:qq郵箱服務器//第二個參數:發件人賬號//第三個參數:授權碼transport.connect("","","");//4.創建郵件//創建郵件對象MimeMessage message =new MimeMessage(session);//指明郵件的發件人message.setFrom(new InternetAddress(""));//指明郵件的收件人message.setRecipient(Message.RecipientType.TO,new InternetAddress(""));//郵件的標題message.setSubject("");//郵件的文本內容message.setContent("","text/html;charset=UTF-8");//5.發送郵transport.sendMessage(message,message.getAllRecipients());transport.close();} catch (Exception e) {e.printStackTrace();System.out.println("有異常,發送失敗");}System.out.println("發送成功");}

5.把上面的代碼改一下就可以發送圖片

// //創建郵件對象 // MimeMessage message = new MimeMessage(session); // // //指明郵件的發件人 // message.setFrom(new InternetAddress("")); // // //指明郵件的收件人,現在發件人和收件人是一樣的,那就是自己給自己發 // message.setRecipient(Message.RecipientType.TO, new InternetAddress("")); // // //郵件的標題 // message.setSubject("你是一個好人"); // // //郵件的文本內容 // // 準備圖片數據 // MimeBodyPart image = new MimeBodyPart(); // DataHandler dh = new DataHandler(new FileDataSource("src/resources/bz.jpg")); // image.setDataHandler(dh); // image.setContentID("bz.jpg"); // // // 準備正文數據 // MimeBodyPart text = new MimeBodyPart(); // text.setContent("這是一封郵件正文帶圖片<img src='cid:bz.jpg'>的郵件", "text/html;charset=UTF-8"); // // // 描述數據關系 // MimeMultipart mm = new MimeMultipart(); // mm.addBodyPart(text); // mm.addBodyPart(image); // mm.setSubType("related"); // // //設置到消息中,保存修改 // message.setContent(mm); // message.saveChanges();

發送附件和圖片代碼

public static void main(String[] args) throws MessagingException, GeneralSecurityException {//創建一個配置文件保存并讀取信息Properties properties = new Properties();//設置qq郵件服務器properties.setProperty("mail.host","smtp.qq.com");//設置發送的協議properties.setProperty("mail.transport.protocol","smtp");//設置用戶是否需要驗證properties.setProperty("mail.smtp.auth", "true");//=================================只有QQ存在的一個特性,需要建立一個安全的鏈接// 關于QQ郵箱,還要設置SSL加密,加上以下代碼即可MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);properties.put("mail.smtp.ssl.enable", "true");properties.put("mail.smtp.ssl.socketFactory", sf);//=================================準備工作完畢//1.創建一個session會話對象;Session session = Session.getDefaultInstance(properties, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("", "授權碼");}});//可以通過session開啟Dubug模式,查看所有的過程session.setDebug(true);//2.獲取連接對象,通過session對象獲得Transport,需要捕獲或者拋出異常;Transport tp = session.getTransport();//3.連接服務器,需要拋出異常;tp.connect("smtp.qq.com","","授權碼");//4.連接上之后我們需要發送郵件;MimeMessage mimeMessage = imageMail(session);//5.發送郵件tp.sendMessage(mimeMessage,mimeMessage.getAllRecipients());//6.關閉連接tp.close();}public static MimeMessage imageMail(Session session) throws MessagingException {//消息的固定信息MimeMessage mimeMessage = new MimeMessage(session);//郵件發送人mimeMessage.setFrom(new InternetAddress(""));//郵件接收人,可以同時發送給很多人,我們這里只發給自己;mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(""));mimeMessage.setSubject("我也不知道是個什么東西就發給你了"); //郵件主題/*編寫郵件內容1.圖片2.附件3.文本*///圖片MimeBodyPart body1 = new MimeBodyPart();body1.setDataHandler(new DataHandler(new FileDataSource("src/resources/yhbxb.png")));body1.setContentID("yhbxb.png"); //圖片設置ID//文本MimeBodyPart body2 = new MimeBodyPart();body2.setContent("請注意,我不是廣告<img src='cid:yhbxb.png'>","text/html;charset=utf-8");//附件MimeBodyPart body3 = new MimeBodyPart();body3.setDataHandler(new DataHandler(new FileDataSource("src/resources/log4j.properties")));body3.setFileName("log4j.properties"); //附件設置名字MimeBodyPart body4 = new MimeBodyPart();body4.setDataHandler(new DataHandler(new FileDataSource("src/resources/1.txt")));body4.setFileName(""); //附件設置名字//拼裝郵件正文內容MimeMultipart multipart1 = new MimeMultipart();multipart1.addBodyPart(body1);multipart1.addBodyPart(body2);multipart1.setSubType("related"); //1.文本和圖片內嵌成功!//new MimeBodyPart().setContent(multipart1); //將拼裝好的正文內容設置為主體MimeBodyPart contentText = new MimeBodyPart();contentText.setContent(multipart1);//拼接附件MimeMultipart allFile =new MimeMultipart();allFile.addBodyPart(body3); //附件allFile.addBodyPart(body4); //附件allFile.addBodyPart(contentText);//正文allFile.setSubType("mixed"); //正文和附件都存在郵件中,所有類型設置為mixed;//放到Message消息中mimeMessage.setContent(allFile);mimeMessage.saveChanges();//保存修改return mimeMessage;}

總結

以上是生活随笔為你收集整理的java实现qq邮箱发送附件和图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。