Latest web development tutorials

Java Kirim Surat

Kirim Menggunakan E-mail aplikasi Java sangat sederhana, tapi pertama-tama Anda harus menginstal JavaMail API dan Aktivasi Kerangka Java (JAF) pada mesin Anda.

  • Anda dapat men-download versi terbaru dari Java yang JavaMail , membuka sisi kanan halaman ada link Download, klik di atasnya untuk men-download.
  • Anda dapat men-download versi terbaru dari Java (Versi 1.1.1) JAF .

Anda juga dapat menggunakan situs untuk memberikan link download:

Download dan unzip file dalam direktori tingkat atas yang baru dibuat, Anda akan menemukan beberapa file jar dua aplikasi. Anda perlu menambahkan filemail.jar dan activation.jaruntuk CLASSPATH Anda.

Jika Anda menggunakan mail server pihak ketiga, seperti server QQ SMTP, Anda dapat melihat artikel penuh di bagian bawah contoh otentikasi pengguna.


Cukup kirim e-mail

Berikut ini adalah contoh sederhana mengirim E-mail. Misalkan localhost Anda sudah terhubung ke jaringan.

// 文件名 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();
      }
   }
}

Mengkompilasi dan menjalankan program untuk mengirim e-mail sederhana:

$ java SendEmail
Sent message successfully....

Jika Anda ingin mengirim e-mail ke beberapa penerima, gunakan metode berikut untuk menentukan beberapa penerima ID:

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

Berikut ini adalah deskripsi dari parameter:

  • Jenis: yang akan ditetapkan sebagai TO, CC atau BCC CC di sini atas nama CC, perwakilan BCC dari CC rahasia y Contoh: .. Message.RecipientType.TO

  • alamat: ini adalah ID email dari array.Ketika menentukan ID e-mail, Anda akan perlu menggunakan () metode InternetAddress.


Kirim HTML e-mail

Berikut adalah contoh dari HTML E-mail yang dikirim. Misalkan localhost Anda sudah terhubung ke jaringan.

Dan itu sangat mirip dengan contoh sebelumnya, kecuali bahwa kita ingin menggunakan () metode setContent untuk lulus parameter kedua adalah "text / html", untuk mengatur konten yang akan dikirim untuk menentukan konten 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();
      }
   }
}

Mengkompilasi dan menjalankan program ini untuk mengirim e-mail HTML:

$ java SendHTMLEmail
Sent message successfully....

Kirim E-mail dengan lampiran

Berikut adalah contoh dari E-mail dengan lampiran dikirim. Misalkan localhost Anda sudah terhubung ke jaringan.

// 文件名 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();
      }
   }
}

Mengkompilasi dan menjalankan program Anda untuk mengirim email dengan lampiran.

$ java SendFileEmail
Sent message successfully....

Bagian otentikasi pengguna

Jika Anda perlu memberikan nama pengguna dan kata sandi ke server e-mail untuk mencapai tujuan otentikasi pengguna, Anda dapat menyelesaikan pengaturan berikut:

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

e-mail dan mekanisme pengiriman lain yang sesuai dengan di atas.

Hal ini membutuhkan password pengguna nama pesan otentikasi dikirim Contoh:

Di server contoh QQ surat ini, misalnya, Anda harus login kotak QQ di latar belakang di "Settings" = "open account di layanan POP3 / SMTP, seperti yang ditunjukkan di bawah ini:

qq-mail untuk mengatur password dengan menghasilkan kunci lisensi:

kode Java adalah sebagai berikut:

// 需要用户名密码邮件发送实例
//文件名 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();
      }
   }
}