Latest web development tutorials
×

Java หลักสูตร

Java หลักสูตร Java แนะนำโดยย่อ Java การกำหนดค่าการพัฒนาสภาพแวดล้อม Java พื้นฐานไวยากรณ์ Java วัตถุและการเรียน Java ชนิดข้อมูลพื้นฐาน Java ประเภทตัวแปร Java การปรับเปลี่ยน Java ผู้ประกอบการ Java โครงสร้างห่วง Java สาขาโครงสร้าง Java Number หมวดหมู่ Java Character หมวดหมู่ Java String หมวดหมู่ Java StringBuffer Java แถว Java วันที่เวลา Java นิพจน์ปกติ Java ทาง Java Stream,File,IO Java Scanner หมวดหมู่ Java การจัดการข้อยกเว้น

Java เชิงวัตถุ

Java สืบทอด Java Override/Overload Java polymorphism Java ระดับนามธรรม Java บรรจุภัณฑ์ Java อินเตอร์เฟซ Java บรรจุภัณฑ์

Java การสอนที่ทันสมัย

Java โครงสร้างข้อมูล Java คอลเลกชันกรอบ Java ยาชื่อสามัญ Java การทำให้เป็นอันดับ Java เขียนโปรแกรมเครือข่าย Java ส่ง Email Java การเขียนโปรแกรมแบบมัลติเธรด Java Appletรากฐาน Java เอกสารความคิดเห็น Java ตัวอย่าง Java 8 คุณสมบัติใหม่ Java MySQL สัมพันธ์

Java ส่งอีเมล์

ส่งโดยใช้ E-mail โปรแกรม Java เป็นเรื่องง่ายมาก แต่แรกที่คุณควรติดตั้ง JavaMail API และการเปิดใช้งานจาวากรอบ (JAF) บนเครื่องของคุณ

  • คุณสามารถดาวน์โหลดรุ่นล่าสุดของ Java JavaMail เปิดทางด้านขวาของหน้ามีการเชื่อมโยงดาวน์โหลดคลิกที่ภาพเพื่อดาวน์โหลด
  • คุณสามารถดาวน์โหลดรุ่นล่าสุดของ Java (เวอร์ชั่น 1.1.1) JAF

นอกจากนี้คุณยังสามารถใช้เว็บไซต์เพื่อให้ลิงค์ดาวน์โหลด:

ดาวน์โหลดและเปิดเครื่องรูดแฟ้มในไดเรกทอรีระดับบนสุดที่สร้างขึ้นใหม่คุณจะพบบางไฟล์ไหสองโปรแกรม คุณต้องเพิ่มmail.jar และไฟล์ activation.jarเพื่อ CLASSPATH ของคุณ

ถ้าคุณใช้เซิร์ฟเวอร์อีเมลของบุคคลที่สามเช่นเซิร์ฟเวอร์ QQ SMTP คุณสามารถดูบทความเต็มรูปแบบที่ด้านล่างของอินสแตนซ์ตรวจสอบผู้ใช้


กรุณาส่ง E-mail

นี่คือตัวอย่างง่ายๆของการส่ง E-mail สมมติว่า localhost ของคุณเชื่อมต่อกับเครือข่าย

// 文件名 SendEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendEmail
{
   public static void main(String [] args)
   {   
      // 收件人电子邮箱
      String to = "[email protected]";
 
      // 发件人电子邮箱
      String from = "[email protected]";
 
      // 指定发送邮件的主机为 localhost
      String host = "localhost";
 
      // 获取系统属性
      Properties properties = System.getProperties();
 
      // 设置邮件服务器
      properties.setProperty("mail.smtp.host", host);
 
      // 获取默认session对象
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // 创建默认的 MimeMessage 对象
         MimeMessage message = new MimeMessage(session);
 
         // Set From: 头部头字段
         message.setFrom(new InternetAddress(from));
 
         // Set To: 头部头字段
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // Set Subject: 头部头字段
         message.setSubject("This is the Subject Line!");
 
         // 设置消息体
         message.setText("This is actual message");
 
         // 发送消息
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

รวบรวมและเรียกใช้โปรแกรมในการส่งง่าย E-mail:

$ java SendEmail
Sent message successfully....

หากคุณต้องการที่จะส่ง e-mail ไปยังผู้รับหลายคนใช้วิธีการต่อไปนี้เพื่อระบุผู้รับหลาย ID:

void addRecipients(Message.RecipientType type,
                   Address[] addresses)
throws MessagingException

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์:

  • ประเภท: ที่จะตั้งให้เป็นไป, CC หรือ BCC CC ที่นี่ในนามของ CC ตัวแทนของ BCC CC ลับ Y ตัวอย่าง: .. Message.RecipientType.TO

  • ที่อยู่: นี่คือ ID อีเมลของอาร์เรย์เมื่อระบุรหัส E-mail ที่คุณจะต้องใช้ InternetAddress () วิธีการ


ส่งอีเมลแบบ HTML

นี่คือตัวอย่างของอีเมล HTML ส่ง สมมติว่า localhost ของคุณเชื่อมต่อกับเครือข่าย

และมันจะคล้ายกับตัวอย่างก่อนหน้านี้ยกเว้นว่าเราต้องการใช้ setContent () วิธีการส่งผ่านพารามิเตอร์ที่สองคือ "text / html" เพื่อกำหนดเนื้อหาที่จะถูกส่งไปยังระบุเนื้อหาของ HTML

// 文件名 SendHTMLEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendHTMLEmail
{
   public static void main(String [] args)
   {
     
      // 收件人电子邮箱
      String to = "[email protected]";
 
      // 发件人电子邮箱
      String from = "[email protected]";
 
      // 指定发送邮件的主机为 localhost
      String host = "localhost";
 
      // 获取系统属性
      Properties properties = System.getProperties();
 
      // 设置邮件服务器
      properties.setProperty("mail.smtp.host", host);
 
      // 获取默认的 Session 对象。
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // 创建默认的 MimeMessage 对象。
         MimeMessage message = new MimeMessage(session);
 
         // Set From: 头部头字段
         message.setFrom(new InternetAddress(from));
 
         // Set To: 头部头字段
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // Set Subject: 头字段
         message.setSubject("This is the Subject Line!");
 
         // 发送 HTML 消息, 可以插入html标签
         message.setContent("<h1>This is actual message</h1>",
                            "text/html" );
 
         // 发送消息
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

รวบรวมและเรียกใช้โปรแกรมนี้ในการส่งอีเมลแบบ HTML:

$ java SendHTMLEmail
Sent message successfully....

ส่ง E-mail พร้อมแนบ

นี่คือตัวอย่างของ E-mail ที่มีสิ่งที่แนบมาจะถูกส่ง สมมติว่า localhost ของคุณเชื่อมต่อกับเครือข่าย

// 文件名 SendFileEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendFileEmail
{
   public static void main(String [] args)
   {
     
      // 收件人电子邮箱
      String to = "[email protected]";
 
      // 发件人电子邮箱
      String from = "[email protected]";
 
      // 指定发送邮件的主机为 localhost
      String host = "localhost";
 
      // 获取系统属性
      Properties properties = System.getProperties();
 
      // 设置邮件服务器
      properties.setProperty("mail.smtp.host", host);
 
      // 获取默认的 Session 对象。
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // 创建默认的 MimeMessage 对象。
         MimeMessage message = new MimeMessage(session);
 
         // Set From: 头部头字段
         message.setFrom(new InternetAddress(from));
 
         // Set To: 头部头字段
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // Set Subject: 头字段
         message.setSubject("This is the Subject Line!");
 
         // 创建消息部分
         BodyPart messageBodyPart = new MimeBodyPart();
 
         // 消息
         messageBodyPart.setText("This is message body");
        
         // 创建多重消息
         Multipart multipart = new MimeMultipart();
 
         // 设置文本消息部分
         multipart.addBodyPart(messageBodyPart);
 
         // 附件部分
         messageBodyPart = new MimeBodyPart();
         String filename = "file.txt";
         DataSource source = new FileDataSource(filename);
         messageBodyPart.setDataHandler(new DataHandler(source));
         messageBodyPart.setFileName(filename);
         multipart.addBodyPart(messageBodyPart);
 
         // 发送完整消息
         message.setContent(multipart );
 
         //   发送消息
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

รวบรวมและเรียกใช้โปรแกรมของคุณเพื่อส่งอีเมล์พร้อมไฟล์แนบ

$ java SendFileEmail
Sent message successfully....

ส่วนการตรวจสอบผู้ใช้

หากคุณจำเป็นต้องใส่ชื่อผู้ใช้และรหัสผ่านไปยังเซิร์ฟเวอร์อีเมลเพื่อให้บรรลุวัตถุประสงค์ของการตรวจสอบผู้ใช้คุณสามารถดำเนินการตั้งค่าต่อไปนี้:

 props.put("mail.smtp.auth", "true");
 props.setProperty("mail.user", "myuser");
 props.setProperty("mail.password", "mypwd");

E-mail และกลไกการจัดส่งอื่น ๆ ที่สอดคล้องกับข้างต้น

มันต้องมีรหัสผ่านชื่อผู้ใช้ข้อความรับรองความถูกต้องส่งตัวอย่าง:

ในเซิร์ฟเวอร์อีเมลเช่น QQ ปัจจุบันตัวอย่างเช่นคุณต้องเข้าสู่ระบบ QQ กล่องจดหมายในพื้นหลังใน "ตั้งค่า" = "บัญชีที่เปิดในบริการ POP3 / SMTP ที่แสดงด้านล่าง:

QQ-mail การตั้งรหัสผ่านโดยการสร้างคีย์ใบอนุญาต:

รหัส Java เป็นดังนี้

// 需要用户名密码邮件发送实例
//文件名 SendEmail2.java
//本实例以QQ邮箱为例,你需要在qq后台设置

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendEmail2
{
   public static void main(String [] args)
   {
      // 收件人电子邮箱
      String to = "[email protected]";

      // 发件人电子邮箱
      String from = "[email protected]";

      // 指定发送邮件的主机为 smtp.qq.com
      String host = "smtp.qq.com";  //QQ 邮件服务器

      // 获取系统属性
      Properties properties = System.getProperties();

      // 设置邮件服务器
      properties.setProperty("mail.smtp.host", host);

      properties.put("mail.smtp.auth", "true");
      // 获取默认session对象
      Session session = Session.getDefaultInstance(properties,new Authenticator(){
	    public PasswordAuthentication getPasswordAuthentication()
	    {
	     return new PasswordAuthentication("[email protected]", "qq邮箱密码"); //发件人邮件用户名、密码
	    }
	   });

      try{
         // 创建默认的 MimeMessage 对象
         MimeMessage message = new MimeMessage(session);

         // Set From: 头部头字段
         message.setFrom(new InternetAddress(from));

         // Set To: 头部头字段
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));

         // Set Subject: 头部头字段
         message.setSubject("This is the Subject Line!");

         // 设置消息体
         message.setText("This is actual message");

         // 发送消息
         Transport.send(message);
         System.out.println("Sent message successfully....from w3cschool.cc");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}