کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Java-آموزش فرستادن ایمیل در جاوا

 

ارسال یک ایمیل با استفاده از برنامه ی جاوا ساده می باشد، اما برای شروع این کار باید JavaMail API   و Java Activation Framework (JAF)را روی دستگاه خود نصب کنید.

·         می توانید آخرین ورژن موجود از JavaMail (Version 1.2) را از وب سایت استاندارد جاوا دانلود کنید.

·         می توانید آخرین ورژن موجود از JAF (Version 1.1.1)را از وب سایت استاندارد جاوا دانلود کنید.

این فایل ها را دانلود کرده و آنها را آنزیپ کنید، در مسیرهای سطح بالای جدیدا ایجاد شده، تعدادی فایل های jar برای هر دو برنامه خواهید یافت. لازم است که فایل های mail.jar  و activation.jar  را به CLASSPATH اضافه کنید.

ارسال یک ایمیل ساده:

در اینجا مثالی برای ارسال یک ایمیل ساده از سیستم خود مشاهده می کنید. در اینجا فرض شده است که localhostis  به اینترنت متصل بوده و قابلیت ارسال یک ایمیل را دارد.

// File Name SendEmail.java

 

import java.util.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

 

public class SendEmail

{

   public static void main(String [] args)

   {   

      // Recipient's email ID needs to be mentioned.

      String to = "abcd@gmail.com";

 

      // Sender's email ID needs to be mentioned

      String from = "web@gmail.com";

 

      // Assuming you are sending email from localhost

      String host = "localhost";

 

      // Get system properties

      Properties properties = System.getProperties();

 

      // Setup mail server

      properties.setProperty("mail.smtp.host", host);

 

      // Get the default Session object.

      Session session = Session.getDefaultInstance(properties);

 

      try{

         // Create a default MimeMessage object.

         MimeMessage message = new MimeMessage(session);

 

         // Set From: header field of the header.

         message.setFrom(new InternetAddress(from));

 

         // Set To: header field of the header.

         message.addRecipient(Message.RecipientType.TO,

                                  new InternetAddress(to));

 

         // Set Subject: header field

         message.setSubject("This is the Subject Line!");

 

         // Now set the actual message

         message.setText("This is actual message");

 

         // Send message

         Transport.send(message);

         System.out.println("Sent message successfully....");

      }catch (MessagingException mex) {

         mex.printStackTrace();

      }

   }

}

این برنامه را کامپایل کرده و اجرا کنید تا یک ایمیل ساده ارسال کنید:

$ java SendEmail

Sent message successfully....

 

اگر می خواهید یک ایمیل را به چند دریافت کننده ارسال کنید، متودهای زیر برای تعیین چند ID استفاده می شوند:

void addRecipients(Message.RecipientType type,

                   Address[] addresses)

throws MessagingException

 

در اینجا توصیف پارامترها را مشاهده می کنید:

·         Type(نوع): این بر روی TO, CC  یا  BCC  تنظیم می شود. در اینجا CC مخفف Carbon Copy و BCC مخفف Black Carbon Copy می باشد. به عنوان مثال Message.RecipientType.TO.

·         addresses (آدرس ها):این قسمت ردیف ID ایمیل می باشد. هنگام تعیین ID های ایمیل لازم است که از متود InternetAddress()  استفاده کنید.

ارسال یک ایمیل HTML:

در اینجا مثالی را از ارسال یک ایمیل HTML از سیستم خود مشاهده می کنید. در اینجا پذیرفته شده که localhostis  به اینترنت متصل بوده و قابلیت ارسال ایمیل را دارد.

این مثال بسیار مشابه مثال قبل است، به جز اینکه در اینجا ما در حال استفاده از متود setContent()  برای تنظیم محتوایی هستیم که محتوای دوم آن "text/html"  است، برای تعیین اینکه محتوای HTML در پیغام می باشد یا نه.

با استفاده از این مثال، محتوایی به بزرگی محتوای HTML که تمایل دارید ارسال کنید.

// File Name SendHTMLEmail.java

 

import java.util.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

 

public class SendHTMLEmail

{

   public static void main(String [] args)

   {

     

      // Recipient's email ID needs to be mentioned.

      String to = "abcd@gmail.com";

 

      // Sender's email ID needs to be mentioned

      String from = "web@gmail.com";

 

      // Assuming you are sending email from localhost

      String host = "localhost";

 

      // Get system properties

      Properties properties = System.getProperties();

 

      // Setup mail server

      properties.setProperty("mail.smtp.host", host);

 

      // Get the default Session object.

      Session session = Session.getDefaultInstance(properties);

 

      try{

         // Create a default MimeMessage object.

         MimeMessage message = new MimeMessage(session);

 

         // Set From: header field of the header.

         message.setFrom(new InternetAddress(from));

 

         // Set To: header field of the header.

         message.addRecipient(Message.RecipientType.TO,

                                  new InternetAddress(to));

 

         // Set Subject: header field

         message.setSubject("This is the Subject Line!");

 

         // Send the actual HTML message, as big as you like

         message.setContent("

This is actual message

",

                            "text/html" );

 

         // Send message

         Transport.send(message);

         System.out.println("Sent message successfully....");

      }catch (MessagingException mex) {

         mex.printStackTrace();

      }

   }

}

 

این برنامه را برای ارسال یک ایمیل HTML کامپایل کرده و اجرا کنید:

$ java SendHTMLEmail

Sent message successfully....

 

ارسال ضمیمه در ایمیل:

در اینجا مثالی برای ارسال یک ایمیل با ضمیمه از سیستم خود مشاهده می کنید. در اینجا پذیرفته شده که yourlocalhost  به اینترنت متصل می باشد و قابلیت ارسال یک ایمیل را دارد.

// File Name SendFileEmail.java

 

import java.util.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

 

public class SendFileEmail

{

   public static void main(String [] args)

   {

     

      // Recipient's email ID needs to be mentioned.

      String to = "abcd@gmail.com";

 

      // Sender's email ID needs to be mentioned

      String from = "web@gmail.com";

 

      // Assuming you are sending email from localhost

      String host = "localhost";

 

      // Get system properties

      Properties properties = System.getProperties();

 

      // Setup mail server

      properties.setProperty("mail.smtp.host", host);

 

      // Get the default Session object.

      Session session = Session.getDefaultInstance(properties);

 

      try{

         // Create a default MimeMessage object.

         MimeMessage message = new MimeMessage(session);

 

         // Set From: header field of the header.

         message.setFrom(new InternetAddress(from));

 

         // Set To: header field of the header.

         message.addRecipient(Message.RecipientType.TO,

                                  new InternetAddress(to));

 

         // Set Subject: header field

         message.setSubject("This is the Subject Line!");

 

         // Create the message part

         BodyPart messageBodyPart = new MimeBodyPart();

 

         // Fill the message

         messageBodyPart.setText("This is message body");

        

         // Create a multipar message

         Multipart multipart = new MimeMultipart();

 

         // Set text message part

         multipart.addBodyPart(messageBodyPart);

 

         // Part two is attachment

         messageBodyPart = new MimeBodyPart();

         String filename = "file.txt";

         DataSource source = new FileDataSource(filename);

         messageBodyPart.setDataHandler(new DataHandler(source));

         messageBodyPart.setFileName(filename);

         multipart.addBodyPart(messageBodyPart);

 

         // Send the complete message parts

         message.setContent(multipart );

 

         // Send message

         Transport.send(message);

         System.out.println("Sent message successfully....");

      }catch (MessagingException mex) {

         mex.printStackTrace();

      }

   }

}

 

برنامه را برای ارسال یک ایمیل HTML کامپایل کرده و اجرا کنید:

$ java SendFileEmail

Sent message successfully....

 

بخش تایید یوزر:

اگر به قصد تایید یوزر لازم است که به سرور ایمیل ID و پسوورد یوزر را ارائه دهید، می توانید پراپرتی ها را مانند زیر تنظیم کنید:

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

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

 

بقیه ی مکانیزم ارسال ایمیل همانطوری است که در بالا توضیح داده شد.

1394/07/27 5878 0
نظرات شما

نظرات خود را ثبت کنید...