logo

שליחת דואר אלקטרוני ב-Java

  1. שליחת דואר אלקטרוני באמצעות JavaMail API
  2. שלבים לשליחת דואר אלקטרוני באמצעות JavaMail API
    1. קבל את אובייקט הפגישה
    2. כתוב את ההודעה
    3. לשלוח את ההודעה
  3. דוגמה פשוטה לשליחת דואר אלקטרוני באמצעות JavaMail API
  4. דוגמה לשליחת דואר אלקטרוני באמצעות JavaMail API דרך שרת ה-SMTP שסופק על ידי ספק המארח

ישנן דרכים שונות לשלוח דואר אלקטרוני באמצעות JavaMail API. לצורך כך, עליך להחזיק בשרת SMTP שאחראי על שליחת מיילים.

אתה יכול להשתמש באחת מהטכניקות הבאות כדי להשיג את שרת ה-SMTP:

  • התקן והשתמש בכל שרת SMTP כגון שרת Postcast, שרת Apache James, שרת cmail וכו' (או)
  • השתמש בשרת ה-SMTP שסופק על ידי ספק המארח, למשל. שרת ה-SMTP שלי הוא mail.javatpoint.com (או)
  • השתמש בשרת SMTP שסופק על ידי חברות אחרות, למשל. gmail וכו'

כאן, אנו הולכים ללמוד למעלה שלוש גישות לשליחת דוא'ל באמצעות javamail API. אבל עלינו ללמוד את השלבים הבסיסיים לשליחת דואר אלקטרוני מאפליקציית Java.


שלבים לשליחת דואר אלקטרוני באמצעות JavaMail API

ישנם שלושה שלבים הבאים לשליחת דואר אלקטרוני באמצעות JavaMail. הם כדלקמן:

    קבל את אובייקט הפגישהשמאחסן את כל המידע של המארח כמו שם מארח, שם משתמש, סיסמה וכו'.לחבר את ההודעה לשלוח את ההודעה


1) קבל את אובייקט הפגישה

ה כיתה javax.mail.Session מספק שתי שיטות להשגת אובייקט ההפעלה, שיטת Session.getDefaultInstance() ושיטת Session.getInstance(). אתה יכול להשתמש בכל שיטה כדי לקבל את אובייקט ההפעלה.

שיעור שיטת הפגישה

לא.שיטהתיאור
1Session סטטי ציבורי getDefaultInstance (אביזרי מאפיינים)מחזיר את הפעלת ברירת המחדל.
2הפעלה סטטית ציבורית getDefaultInstance (אביזרי מאפיינים, אימות מאמת)מחזיר את הפעלת ברירת המחדל.
3הפעלה סטטית ציבורית getInstance (אביזרים של מאפיינים)מחזיר את ההפעלה החדשה.
4הפעלה סטטית ציבורית getInstance (אביזרים של מאפיינים, אימות מאמת)מחזיר את ההפעלה החדשה.

דוגמה לשיטת getDefaultInstance()‎

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

דוגמה לשיטת getInstance()

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) כתוב את ההודעה

המחלקה javax.mail.Message מספקת שיטות לחיבור ההודעה. אבל זה מחלקה אבסטרקטית אז תת המחלקה שלה javax.mail.internet.MimeMessage משמשת בעיקר.
כדי ליצור את ההודעה, עליך להעביר אובייקט הפעלה בבנאי המחלקה MimeMessage. לדוגמה:
 MimeMessage message=new MimeMessage(session); 
כעת נוצר אובייקט הודעה, אך כדי לאחסן מידע באובייקט זה, מחלקת MimeMessage מספקת שיטות רבות. בוא נראה שיטות המסופקות על ידי מחלקת MimeMessage:

שיטות נפוצות של מחלקת MimeMessage

לא.שיטהתיאור
1public void setFrom(כתובת כתובת)משמש להגדרת שדה הכותרת מאת.
2public void addRecipient (סוג הודעה.RecipientType, כתובת כתובת)משמש להוספת הכתובת הנתונה לסוג הנמען.
3public void addRecipients (סוג הודעה.RecipientType, כתובת[] כתובות)משמש להוספת הכתובות הנתונות לסוג הנמען.
4public void setSubject(נושא מחרוזת)משמש להגדרת שדה כותרת הנושא.
5public void setText(הודעת טקסט מחרוזת)משמש להגדרת הטקסט כתוכן ההודעה באמצעות טקסט/סוג MIME רגיל.
6public void setContent(Object msg, String contentType)משמש להגדרת התוכן כתוכן ההודעה באמצעות סוג MIME נתון.

דוגמה לחיבור ההודעה:

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) שלח את ההודעה

מחלקת javax.mail.Transport מספקת שיטה לשליחת ההודעה.

שיטות נפוצות של מחלקת תחבורה

לא.שיטהתיאור
1שליחה של ריק סטטי ציבורי (הודעת הודעה)משמש לשלוח את ההודעה.
2שליחה של ריק סטטי ציבורי (הודעת הודעה, כתובת[] כתובת)משמש לשלוח את ההודעה לכתובות הנתונות.

דוגמה לשליחת ההודעה:

 Transport.send(message); 

דוגמה פשוטה לשליחת דואר אלקטרוני ב-Java

הורד את קובצי ה-jar או עבור אל אתר Oracle כדי להוריד את הגרסה העדכנית ביותר.
בדוגמה זו, אנו הולכים ללמוד כיצד לשלוח דואר אלקטרוני באמצעות שרת SMTP המותקן על המחשב, למשל. שרת פוסט-קאסט, שרת Apache James, שרת Cmail וכו'. אם ברצונך לשלוח דואר אלקטרוני באמצעות שרת ה-SMTP שסופק על ידי ספק המארח, ראה את הדוגמה שאחרי זה.
כדי לשלוח את האימייל באמצעות JavaMail API, עליך לטעון את שני קבצי ה-jar:
mail.jar
activation.jar
 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]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
הורד את הדוגמה הזו כדי לשלוח דוא'ל

בדוגמה זו, אנו הולכים ללמוד כיצד לשלוח דואר אלקטרוני באמצעות שרת SMTP המותקן על המחשב, למשל. שרת פוסט-קאסט, שרת Apache James, שרת Cmail וכו'. אם ברצונך לשלוח דואר אלקטרוני באמצעות שרת ה-SMTP שסופק על ידי ספק המארח, ראה את הדוגמה שאחרי זה.

מחרוזות מורכבות java

כדי להפעיל דוגמה זו, עליך לטעון שני קבצי jar. ישנן 4 דרכים לטעון את קובץ ה-jar. אחת הדרכים היא הגדרת classpath. בוא נראה איך להפעיל את הדוגמה הזו:

טען את קובץ ה-jarc:> set classpath=mail.jar;activation.jar;.;
להרכיב את קובץ המקורc:> javac SendEmail.java
מופעל ע'יc:> Java SendEmail

דוגמה לשליחת דואר אלקטרוני ב-Java דרך שרת SMTP שסופק על ידי ספק המארח

הורד את קובצי ה-jar או עבור אל אתר Oracle כדי להוריד את הגרסה העדכנית ביותר.
אם אתה משתמש בשרת ה-SMTP שסופק על ידי ספק המארח, למשל. mail.javatpoint.com , עליך לאמת את שם המשתמש והסיסמה. מחלקת javax.mail.PasswordAuthentication משמשת לאימות הסיסמה.
אם אתה שולח את האימייל באמצעות JavaMail API, טען את שני קבצי ה-jar:
mail.jar
activation.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
הורד את הדוגמה הזו כדי לשלוח דוא'ל

כפי שניתן לראות בדוגמה לעיל, יש לאמת את זיהוי המשתמש והסיסמה. כפי שתוכנית זו ממחישה, אתה יכול לשלוח דוא'ל בקלות. שנה את שם המשתמש והסיסמה בהתאם. בואו נראה איך להפעיל את זה שוב בטכניקה פשוטה:

טען את קובץ ה-jarc:> set classpath=mail.jar;activation.jar;.;
להרכיב את קובץ המקורc:> javac SendMailBySite.java
מופעל ע'יc:> java SendMailBySite