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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaMail发送邮件的笔记及Demo

發布時間:2025/3/15 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaMail发送邮件的笔记及Demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  最近碰到一個需求,就是注冊用戶時候需要向用戶發送激活郵箱,于是照著網上搜來的demo自己試著運行了一下,發件時我用的是網易163郵箱,收件時用QQ郵箱,運行后報了一個錯誤:

網絡上搜索解決方式,多次嘗試后發現了問題,原來是我的163郵箱賬號沒有開啟客戶端授權,因此也就沒有開啟SMTP服務,這是無法用javamail程序作為發件人發送郵箱的,于是在設置里開始授權及服務之后,滿心歡喜的再次運行,悲哀的是又報了另一個錯誤:

無奈再次開始調試,最后終于發現了問題,正如網友說的,因為你驗證的郵箱用戶名和你發送的時候添寫的郵箱地址不一樣,SMTP服務器駁回了你的請求,我在驗證的時候使用的我自己的163郵箱,在設置發信人的時候,誤把xxxxxx@163.com寫成了xxxxxxx@qq.com(不能忍),改正過來以后,如愿以償,終于可以發送郵件了,以下是代碼和注釋:

/*** javamail發郵件* @throws Exception * @throws AddressException */@Testpublic void sendMailDemo() throws Exception{/*** 1.得到session*/// Properties是Session的屬性對象,用于封裝針對SMTP的一些常用屬性Properties props=new Properties();//設置smtp服務器地址props.setProperty("mail.host", "smtp.163.com");//設置SMTP服務器是否需要用戶認證,默認為false,設為trueprops.setProperty("mail.smtp.auth", "true");Authenticator auth=new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {
        //注意:下面的登錄用戶名是@前邊的內容,如果你的賬號是haha@163.com,只需要輸入haha
return new PasswordAuthentication("郵件服務器登錄用戶名", "登錄密碼");}};Session session = Session.getInstance(props,auth);/*** 2.創建MimeMessage*/MimeMessage msg=new MimeMessage(session);//設置發件人msg.setFrom(new InternetAddress("發送方郵箱賬號"));//設置收件人msg.setRecipients(RecipientType.TO,"接受方郵箱賬號");//設置抄送msg.setRecipients(RecipientType.CC,"郵箱賬號");//設置主題msg.setSubject("javamail發送郵件Demo");//設置內容msg.setContent("我是郵件","text/html;charset=utf-8");
/*** 3.發送*/Transport.send(msg);}

?下面在介紹一下發送帶附件的郵件需要修改的代碼,只需要將上面的:

msg.setContent("我是郵件","text/html;charset=utf-8")

替換成下面的代碼即可:

     MimeMultipart list=new MimeMultipart();//創建MimebodtPartMimeBodyPart part1=new MimeBodyPart();part1.setContent("這是一封包含附件的垃圾郵箱","text/html;charset=utf-8");list.addBodyPart(part1);//創建MimebodtPartMimeBodyPart part2=new MimeBodyPart();//設置附件內容part2.attachFile(new File("e:/照片/me.jpg"));//設置顯示的文件名 順便解決亂碼問題part2.setFileName(MimeUtility.encodeText("哎喲,不錯哦.jpg"));list.addBodyPart(part2);msg.setContent(list);

?

總結

以上是生活随笔為你收集整理的JavaMail发送邮件的笔记及Demo的全部內容,希望文章能夠幫你解決所遇到的問題。

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