Latest web development tutorials

email Servlet

Mengirim e-mail menggunakan Servlet sangat sederhana, tetapi pertama Anda harus menginstalJavaMail API dan Java Aktivasi Framework)di komputer AndaJAF).

  • 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.

Kirim e-mail sederhana

Contoh berikut mengirim e-mail sederhana dari komputer Anda. Ini mengasumsikanhost lokal Anda terhubung ke Internet dan e-mail dukungan.Sambil memastikan bahwa paket Email API Java dan paket JAF semua file jar di CLASSPATH tersedia.

// Nama file SendEmail.java
import java.io. *;
import java.util * .;
import javax.servlet * .;
impor javax.servlet.http * .;
impor javax.mail * .;
impor javax.mail.internet * .;
impor javax.activation * .;
 
public class SendEmail meluas HttpServlet {
    
  public void doGet (permintaan HttpServletRequest,
                    HttpServletResponse respon)
            melempar ServletException, IOException
  {
      // ID e-mail penerima
      String ke = "[email protected]";
 
      // ID e-mail pengirim
      String dari = "[email protected]";
 
      // Katakanlah Anda mengirim e-mail String host = "localhost" dari host lokal;
 
      // Dapatkan sifat sistem Properti sifat = System.getProperties ();
 
      // Mengatur properties.setProperty server email ( "mail.smtp.host", host);
 
      // Dapatkan sesi default Sesi Sesi objek = Session.getDefaultInstance (properti);
      
      // Mengatur jenis konten respon response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      try {
         // Buat default MimeMessage objek MimeMessage pesan = baru MimeMessage (sesi);
         // Mengatur Dari: header bidang header.
         message.setFrom (InternetAddress baru (dari));
         // Set Untuk: kolom header header.
         message.addRecipient (Message.RecipientType.TO,
                                  baru InternetAddress (untuk));
         // Set Subjek: kolom header
         message.setSubject ( "ini adalah Subject Line!");
         // Sekarang mengatur pesan yang sebenarnya message.setText ( "Ini adalah pesan yang sebenarnya");
         // Kirim pesan Transport.send (message);
         title String = "email";
         res String = "berhasil dikirim pesan ...";
         String DOCTYPE = "\ n <DOCTYPE html!>";
         out.println (doctype +
         "<Html> \ n" +
         "<Head> <title>" + judul + "</ title> </ head> \ n" +
         "<Tubuh bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" center \ ">" + judul + "</ h1> \ n" +
         "<P align = \" center \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Sekarang mari kita mengkompilasi Servlet atas, dan menciptakan entri berikut dalam file web.xml:

....
 <Servlet>
     <Servlet-nama> SendEmail </ servlet-name>
     <Servlet kelas> SendEmail </ servlet-class>
 </ Servlet>
 
 <Servlet-mapping>
     <Servlet-nama> SendEmail </ servlet-name>
     <Url-pola> / SendEmail </ url-pattern>
 </ Servlet-mapping>
....

Sekarang dengan mengunjungi URL http: // localhost: 8080 / SendEmail untuk memanggil Servlet ini. Ini akan mengirim email ke emailIDdiberikan [email protected], dan akan muncul sebagaimana ditunjukkan pada respon berikut:

Kirim e-mail

Berhasil mengirim pesan ...

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

kekosongan addRecipients (tipe Message.RecipientType, 
                   Alamat [] alamat)
melempar MessagingException

Berikut ini adalah deskripsi dari parameter:

  • Jenis: ini akan ditetapkan sebagai TO, CC, atau BCC.Di sini, CC atas nama CC, perwakilan BCC BCC. MisalnyaMessage.RecipientType.TO.
  • alamat: Ini adalah sebuah array ID e-mail.Ketika menentukan ID e-mail, Anda perlu menggunakan () metode InternetAddress.

Kirim e-mail HTML

Contoh berikut akan mengirim e-mail berformat HTML pada komputer Anda. Ini mengasumsikanhost lokal Anda terhubung ke Internet dan e-mail dukungan.Sambil memastikan bahwa paket Email API Java dan paket JAF semua file jar di CLASSPATH tersedia.

Contoh ini sangat mirip dengan contoh sebelumnya, tetapi di sini kita menggunakan setContent metode () untuk mengatur parameter kedua adalah "text / html" konten, parameter ini digunakan untuk menentukan konten HTML yang terkandung dalam pesan.

Menggunakan contoh ini, Anda dapat mengirim konten tidak terbatas pada ukuran konten HTML.

// Nama file SendEmail.java
import java.io. *;
import java.util * .;
import javax.servlet * .;
impor javax.servlet.http * .;
impor javax.mail * .;
impor javax.mail.internet * .;
impor javax.activation * .;
 
public class SendEmail meluas HttpServlet {
    
  public void doGet (permintaan HttpServletRequest,
                    HttpServletResponse respon)
            melempar ServletException, IOException
  {
      // ID e-mail penerima
      String ke = "[email protected]";
 
      // ID e-mail pengirim
      String dari = "[email protected]";
 
      // Katakanlah Anda mengirim e-mail String host = "localhost" dari host lokal;
 
      // Dapatkan sifat sistem Properti sifat = System.getProperties ();
 
      // Mengatur properties.setProperty server email ( "mail.smtp.host", host);
 
      // Dapatkan sesi default Sesi Sesi objek = Session.getDefaultInstance (properti);
      
	  // Mengatur jenis konten respon response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      try {
         // Buat default MimeMessage objek MimeMessage pesan = baru MimeMessage (sesi);
         // Mengatur Dari: header bidang header.
         message.setFrom (InternetAddress baru (dari));
         // Set Untuk: kolom header header.
         message.addRecipient (Message.RecipientType.TO,
                                  baru InternetAddress (untuk));
         // Set Subjek: kolom header
         message.setSubject ( "ini adalah Subject Line!");

         // Mengatur sebenarnya pesan HTML ukuran konten terbatas message.setContent ( "<h1> Ini adalah pesan yang sebenarnya </ h1>",
                            "Teks / html");
         // Kirim pesan Transport.send (message);
         title String = "email";
         res String = "berhasil dikirim pesan ...";
         String DOCTYPE = "\ n <DOCTYPE html!>";
         out.println (doctype +
         "<Html> \ n" +
         "<Head> <title>" + judul + "</ title> </ head> \ n" +
         "<Tubuh bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" center \ ">" + judul + "</ h1> \ n" +
         "<P align = \" center \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Mengkompilasi dan menjalankan Servlet atas, mengirim pesan HTML pada ID e-mail yang diberikan.

Mengirim lampiran dalam e-mail

Contoh berikut mengirim e-mail dengan lampiran pada komputer Anda akan. Ini mengasumsikanhost lokal Anda terhubung ke Internet dan e-mail dukungan.Sambil memastikan bahwa paket Email API Java dan paket JAF semua file jar di CLASSPATH tersedia.

// Nama file SendEmail.java
import java.io. *;
import java.util * .;
import javax.servlet * .;
impor javax.servlet.http * .;
impor javax.mail * .;
impor javax.mail.internet * .;
impor javax.activation * .;
 
public class SendEmail meluas HttpServlet {
    
  public void doGet (permintaan HttpServletRequest,
                    HttpServletResponse respon)
            melempar ServletException, IOException
  {
      // ID e-mail penerima
      String ke = "[email protected]";
 
      // ID e-mail pengirim
      String dari = "[email protected]";
 
      // Katakanlah Anda mengirim e-mail String host = "localhost" dari host lokal;
 
      // Dapatkan sifat sistem Properti sifat = System.getProperties ();
 
      // Mengatur properties.setProperty server email ( "mail.smtp.host", host);
 
      // Dapatkan sesi default Sesi Sesi objek = Session.getDefaultInstance (properti);
      
	  // Mengatur jenis konten respon response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

       try {
         // Buat default MimeMessage objek MimeMessage pesan = baru MimeMessage (sesi);
 
         // Mengatur Dari: header bidang header.
         message.setFrom (InternetAddress baru (dari));
 
         // Set Untuk: kolom header header.
         message.addRecipient (Message.RecipientType.TO,
                                  baru InternetAddress (untuk));
 
         // Set Subjek: kolom header
         message.setSubject ( "ini adalah Subject Line!");
 
         // Buat bagian pesan bodypart messageBodyPart = baru MimeBodyPart ();
 
         // Isi pesan messageBodyPart.setText ( "Ini adalah badan pesan");
         
         // Buat multi-bagian pesan Multipart multi = baru MimeMultipart ();
 
         // Set bagian pesan teks multipart.addBodyPart (messageBodyPart);
 
         // Bagian kedua adalah aksesori messageBodyPart = baru MimeBodyPart ();
         String filename = "file.txt";
         Sumber DataSource = baru FileDataSource (nama file);
         messageBodyPart.setDataHandler (baru DataHandler (sumber));
         messageBodyPart.setFileName (nama file);
         multipart.addBodyPart (messageBodyPart);
 
         // Kirim pesan bagian message.setContent lengkap (multipart);
 
         // Kirim pesan Transport.send (message);
         title String = "email";
         res String = "berhasil mengirim e-mail ...";
         String DOCTYPE = "\ n <DOCTYPE html!>";
         out.println (doctype +
         "<Html> \ n" +
         "<Head> <title>" + judul + "</ title> </ head> \ n" +
         "<Tubuh bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" center \ ">" + judul + "</ h1> \ n" +
         "<P align = \" center \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Mengkompilasi dan menjalankan Servlet atas, mengirim pesan dengan lampiran file pada ID e-mail yang diberikan.

Bagian otentikasi pengguna

Jika Anda perlu menyediakan server e-mail user ID dan password otentikasi, Anda dapat mengatur properti berikut:

 props.setProperty ( "mail.user", "myuser");
 props.setProperty ( "mail.password", "mypwd");

Sisa dari mekanisme pengiriman e-mail konsisten dengan di atas menjelaskan.