مشخصات مقاله
-
0
-
0.0
-
5878
-
0
-
0
آموزش 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");
بقیه ی مکانیزم ارسال ایمیل همانطوری است که در بالا توضیح داده شد.