整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Java發(fā)送QQ郵件

          天學習了如何用Java[1] 發(fā)送普通郵件,HTML郵件和帶附件的郵件。黑客最喜歡干的事情就是發(fā)釣魚郵件,安全磚家還為其美名叫魚叉攻擊,嘖嘖。

          ailx10:網(wǎng)絡(luò)安全優(yōu)秀回答者,網(wǎng)絡(luò)安全碩士


          發(fā)送一封簡單的QQ郵件:

          • 收件人會收到純文本的郵件!
          package hackbiji;
          
          import javax.mail.*;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeMessage;
          import java.util.Properties;
          
          public class hello {
              public static void main(String[] args) {
                  String to = "792161993@qq.com";
                  String from = "393803933@qq.com";
                  String host = "smtp.qq.com";
                  Properties properties = System.getProperties();
                  properties.setProperty("mail.smtp.host",host);
                  properties.put("mail.smtp.auth","true");
          
          
                  Session session = Session.getDefaultInstance(properties, new Authenticator() {
                      public PasswordAuthentication getPasswordAuthentication()
                      {
                          return new PasswordAuthentication("393803933","***********");
                      }
                  });
          
                  try {
                      MimeMessage mimeMessage = new MimeMessage(session);
                      mimeMessage.setFrom(new InternetAddress(from));
                      mimeMessage.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));
                      mimeMessage.setSubject("主題:黑客筆記");
                      mimeMessage.setText("正文:我是ailx10,我喜歡2進制安全和滲透技術(shù)");
                      Transport.send(mimeMessage);
                      System.out.println("發(fā)送郵件成功");
          
                  } catch (MessagingException e) {
                      e.printStackTrace();
                  }
          
              }
          }

          發(fā)送一封HTML QQ郵件:

          • 收件人會收到HTML的郵件,這里就可以做成釣魚鏈接了!
          package hackbiji;
          
          import javax.mail.*;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeMessage;
          import java.util.Properties;
          
          public class hello {
              public static void main(String[] args) {
                  String to = "792161993@qq.com";
                  String from = "393803933@qq.com";
                  String host = "smtp.qq.com";
                  Properties properties = System.getProperties();
                  properties.setProperty("mail.smtp.host",host);
                  properties.put("mail.smtp.auth","true");
          
          
                  Session session = Session.getDefaultInstance(properties, new Authenticator() {
                      public PasswordAuthentication getPasswordAuthentication()
                      {
                          return new PasswordAuthentication("393803933@qq.com","************");
                      }
                  });
          
                  try {
                      MimeMessage mimeMessage = new MimeMessage(session);
                      mimeMessage.setFrom(new InternetAddress(from));
                      mimeMessage.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));
                      mimeMessage.setSubject("主題:黑客筆記");
                      mimeMessage.setContent("<img src=\"http://hackbiji.top/images/avatar.jpg\" width=\"50\" height=\"50\" />","text/html");
                      Transport.send(mimeMessage);
                      System.out.println("發(fā)送郵件成功");
          
                  } catch (MessagingException e) {
                      e.printStackTrace();
                  }
          
              }
          }

          發(fā)送一封帶附件的QQ郵件

          package hackbiji;
          
          import javax.activation.DataHandler;
          import javax.activation.FileDataSource;
          import javax.mail.*;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeBodyPart;
          import javax.mail.internet.MimeMessage;
          import javax.mail.internet.MimeMultipart;
          import java.util.Properties;
          
          public class hello {
              public static void main(String[] args) {
                  String to = "792161993@qq.com";
                  String from = "393803933@qq.com";
                  String host = "smtp.qq.com";
                  Properties properties = System.getProperties();
                  properties.setProperty("mail.smtp.host",host);
                  properties.put("mail.smtp.auth","true");
          
          
                  Session session = Session.getDefaultInstance(properties, new Authenticator() {
                      public PasswordAuthentication getPasswordAuthentication()
                      {
                          return new PasswordAuthentication("393803933@qq.com","***********");
                      }
                  });
          
                  try {
                      MimeMessage mimeMessage = new MimeMessage(session);
                      mimeMessage.setFrom(new InternetAddress(from));
                      mimeMessage.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));
                      mimeMessage.setSubject("主題:黑客筆記");
          
                      MimeBodyPart msgBodyPart = new MimeBodyPart();
                      msgBodyPart.setText("正文:我是ailx10");
                      MimeMultipart mimeMultipart = new MimeMultipart();
                      mimeMultipart.addBodyPart(msgBodyPart);
                      msgBodyPart = new MimeBodyPart();
                      String filepath = "C:\\Users\\Admin\\IdeaProjects\\helloworld\\src\\src\\main\\java\\hackbiji\\hack.zip";
                      String filename = "hack.zip";
                      FileDataSource fileDataSource = new FileDataSource(filepath);
                      msgBodyPart.setDataHandler(new DataHandler(fileDataSource));
                      msgBodyPart.setFileName(filename);
                      mimeMultipart.addBodyPart(msgBodyPart);
          
                      mimeMessage.setContent(mimeMultipart);
          
                      Transport.send(mimeMessage);
                      System.out.println("發(fā)送郵件成功");
          
                  } catch (MessagingException e) {
                      e.printStackTrace();
                  }
          
              }
          }

          參考

          1. ^Java入門教程 https://www.runoob.com/java/java-tutorial.html

          歡迎再次回到我們的Python郵件發(fā)送系列文章!在上一篇文章中,我們成功搭建了使用Python發(fā)送郵件的基礎(chǔ)環(huán)境,并學會了如何連接到SMTP服務(wù)器。今天,我們將繼續(xù)深入,學習如何編寫一封完整的郵件內(nèi)容,并通過Python將其發(fā)送出去。

          一、創(chuàng)建郵件內(nèi)容

          在Python中,email模塊提供了豐富的類和方法,讓我們能夠輕松地構(gòu)建郵件內(nèi)容。對于簡單的文本郵件,我們可以使用email.mime.text.MIMEText類。

          from email.mime.text import MIMEText
          
          # 郵件正文內(nèi)容
          message_text = "你好,這是一封來自Python的郵件!希望你喜歡Python編程的樂趣。"
          
          # 創(chuàng)建郵件對象
          # 注意:這里的'plain'表示純文本,'utf-8'是字符編碼
          message = MIMEText(message_text, 'plain', 'utf-8')
          
          # 設(shè)置郵件的頭部信息
          # 發(fā)件人、收件人和郵件主題都是郵件頭部的重要部分
          message['From'] = 'your_email@gmail.com'  # 請?zhí)鎿Q成你的郵箱地址
          message['To'] = 'receiver_email@example.com'  # 請?zhí)鎿Q成接收者的郵箱地址
          message['Subject'] = 'Hello from Python!'  # 郵件主題

          二、發(fā)送郵件

          現(xiàn)在,我們已經(jīng)有了郵件內(nèi)容(包括正文和頭部信息),接下來就是通過SMTP服務(wù)器發(fā)送郵件了。我們將復用之前文章中創(chuàng)建的SMTP連接邏輯,來完成發(fā)送任務(wù)。

          import smtplib
          
          # SMTP服務(wù)器和端口(以Gmail為例)
          smtp_server = 'smtp.gmail.com'
          port = 587
          
          # 你的Gmail賬號和密碼(或應(yīng)用專用密碼)
          email = 'your_email@gmail.com'  # 請?zhí)鎿Q成你的郵箱地址
          password = 'your_app_specific_password'  # 請?zhí)鎿Q成你的Gmail應(yīng)用專用密碼
          
          try:
              # 創(chuàng)建一個SMTP連接
              server = smtplib.SMTP(smtp_server, port)
              server.starttls()  # 啟用TLS加密
              server.login(email, password)  # 登錄
          
              # 發(fā)送郵件
              # 注意:sendmail方法的第一個參數(shù)是發(fā)件人郵箱,第二個參數(shù)是接收者郵箱列表(即使只有一個接收者也要用列表形式),第三個參數(shù)是郵件內(nèi)容對象
              server.sendmail(email, [message['To']], message.as_string())
              print("郵件發(fā)送成功!")
          
          finally:
              # 關(guān)閉SMTP連接
              server.quit()

          注意

          • 請確保將your_email@gmail.comyour_app_specific_passwordreceiver_email@example.com等占位符替換成你自己的郵箱地址、Gmail應(yīng)用專用密碼和接收者郵箱地址。
          • 如果你使用的是其他郵件服務(wù)提供商(如Outlook、QQ郵箱等),請相應(yīng)地更改SMTP服務(wù)器地址、端口號以及可能的登錄驗證方式。

          結(jié)語

          恭喜你,現(xiàn)在你已經(jīng)學會了如何使用Python編寫并發(fā)送一封簡單的文本郵件!在下一篇文章中,我們將進一步探索如何發(fā)送HTML郵件和帶附件的郵件,讓你的郵件內(nèi)容更加豐富多彩。請繼續(xù)關(guān)注我們的系列文章,不要錯過任何精彩內(nèi)容!

          pringBoot整合了Java Mail可以很方便的發(fā)送電子郵件。

          我們來看看如何發(fā)送HTML格式的電子郵件。

          導入郵件依賴

          在SpringBoot的pom文件中導入電子郵件的starter。

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

          配置郵件信息

          在application.properties中配置郵箱信息,包括郵件服務(wù)器地址、用戶名和密碼。

          spring.mail.host=smtp.qq.com
          spring.mail.username=123@qq.com
          spring.mail.password=456

          注入郵件發(fā)送器

          使用@Autowired注解注入JavaMailSender對象。

          @Autowired
          private JavaMailSender javaMailSender;

          4.構(gòu)造HTML郵件

          創(chuàng)建mimeMessage對象發(fā)送HTML郵件。

          MimeMessage mimeMessage = javaMailSender.createMimeMessage();
          MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
          
          try {
              helper.setFrom("123@qq.com(帥鍋)");
              helper.setTo("456@qq.com");
              helper.setSubject("你好");
              helper.setText("<a href='https://www.qq.com'>點我</a>",true);
          } catch (MessagingException e) {
              e.printStackTrace();
          }

          通過MimeMessageHelper對象設(shè)置郵件信息。

          setText第一個參數(shù)是郵件的正文,在這里輸入HTML代碼

          setText第二個參數(shù)是設(shè)置是否是HTML郵件,要設(shè)置為true

          方法

          作用

          helper.setFrom

          設(shè)置發(fā)件人地址,可以通過“()”設(shè)置別名

          helper.setTo

          設(shè)置收件人地址

          helper.setSubject

          設(shè)置郵件標題

          helper.setText

          設(shè)置郵件正文,第二個參數(shù)設(shè)置是否為HTML郵件

          發(fā)送郵件

          通過 javaMailSender.send方法發(fā)送電子郵件,參數(shù)是構(gòu)建的mimeMessage對象。

          @Component
          public class MailServiceImpl implements MailService{
          
              @Autowired
              private JavaMailSender javaMailSender;
          
              @Override
              public void sendMail() {
                  MimeMessage mimeMessage = javaMailSender.createMimeMessage();
                  MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
          
                  try {
                      helper.setFrom("123@qq.com(帥鍋)");
                      helper.setTo("456@qq.com");
                      helper.setSubject("你好");
                      helper.setText("<a href='https://www.qq.com'>點我</a>",true);
                  } catch (MessagingException e) {
                      e.printStackTrace();
                  }
          
                  javaMailSender.send(mimeMessage);
              }
          }

          測試

          通過測試方法測試郵件發(fā)送。

          @SpringBootTest
          public class MailTest {
          
              @Autowired
              private MailService mailService;
          
              @Test
              void test(){
                  mailService.sendMail();
              }
          }

          郵箱收到了發(fā)送的郵件,連接是可以點擊的,是一個HTML格式的郵件。


          主站蜘蛛池模板: 日本中文字幕在线视频一区| 无码播放一区二区三区| 夜夜添无码一区二区三区| AA区一区二区三无码精片| 久久国产精品免费一区| 精彩视频一区二区三区| 中文字幕一区视频| 亚洲成AV人片一区二区| 日本高清成本人视频一区| 精品视频一区二区观看| 国产视频一区在线播放| 日本高清一区二区三区| 亚洲香蕉久久一区二区| 亚洲AV无码一区二区三区在线| 午夜天堂一区人妻| 午夜DV内射一区二区| 亚洲国产高清在线精品一区| 日本免费一区二区三区四区五六区 | 99精品国产一区二区三区不卡| 国产一区二区三区国产精品| 亚洲中文字幕久久久一区| 一区二区三区精密机械| 亚洲一区二区三区高清不卡| 亚洲一区AV无码少妇电影| 无码国产精品一区二区免费虚拟VR| 少妇无码一区二区二三区| 亚洲天堂一区二区三区四区| 亚洲熟妇AV一区二区三区宅男| 亚洲日本va一区二区三区| 女女同性一区二区三区四区| 日韩精品一区二区三区中文版| 日韩一区二区三区不卡视频| 秋霞鲁丝片一区二区三区| 国产精品免费大片一区二区| 亚洲日韩精品一区二区三区| 亚洲熟妇av一区| 国产一区二区三区在线免费观看 | 午夜影视日本亚洲欧洲精品一区| 日韩人妻一区二区三区免费| 老熟妇高潮一区二区三区| 国产MD视频一区二区三区|