Java mail sending program (can be sent to multiple addresses at the same time, can carry attachments), java mail
Main Program for sending emails
Import java. util. Properties;
Import common. util. Email_Autherticatorbean;
Import javax. mail. Authenticator;
Import javax. mail. internet. InternetAddress;
Import org. apache. commons. lang. StringUtils;
Import javax. mail. internet. MimeBodyPart;
Import javax. mail. Multipart;
Import javax. activation. FileDataSource;
Import javax. mail. internet. MimeMultipart;
Import javax. activation. DataHandler;
Import javax. mail. internet. MimeUtility;
Import java. util. Date;
/**
* Use the java. mail email sending program
*/
Public class SendMailTest
{
Public static void main (String [] args)
{
String title = "titleTest"; // the title of the sent Email
String from = "sir_znp@163.com"; // send from there
String sendTo [] = {"znp@163.net", "sir_znp@163.com"}; // send to there
// The text content of the email, which can contain html tags to display as html pages
String content = "mail test !!!!!! <Br> <a href = #> aaa </a> ";
// Include the attachment and rename the attachment
String fileNames [] = {"F: \ music \ text1.txt,text1.txt", "F: \ music \ text2.txt,text2.txt "};
Try {
// MailSender mailsender = new MailSender ();
Sendmail (title, from, sendTo, content, fileNames, "text/html; charset = gb2312 ");
} Catch (Exception ex) {ex. printStackTrace ();}
}
Public static void sendmail (String subject, String from, String [] to, String text, String [] filenames, String mimeType) throws Exception
{
// ResourceBundle mailProps = ResourceBundle. getBundle ("mail"); corresponding parameters can be read from the configuration file
Properties props = new Properties ();
String smtp = "smtp.163.com"; // you can specify the smtp used to send emails.
String servername = "sir_znp ";
String serverpawd = "123 ";
Javax. mail. Session mailSession; // mail Session Object
Javax. mail. internet. MimeMessage mimeMsg; // MIME email object
Props = java. lang. System. getProperties (); // obtain the System property object
Props. put ("mail. smtp. host", smtp); // set the SMTP host
Props. put ("mail. smtp. auth", "true"); // verify the server user name and password
// Verify that the user name and password sent are correct on the server
Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean (servername, serverpaswd );
// Set the email session
MailSession = javax. mail. Session. getInstance (props, (Authenticator) myEmailAuther );
// Set the transmission protocol
Javax. mail. Transport transport = mailSession. getTransport ("smtp ");
// Set information such as from and
MimeMsg = new javax. mail. internet. MimeMessage (mailSession );
If (! StringUtils. isEmpty (from ))
{
InternetAddress sentFrom = new InternetAddress (from );
MimeMsg. setFrom (sentFrom); // sets the sender address.
}
InternetAddress [] sendTo = new InternetAddress [to. length];
For (int I = 0; I <to. length; I ++)
{
System. out. println ("sent to:" + to [I]);
SendTo [I] = new InternetAddress (to [I]);
}
MimeMsg. setRecipients (javax. mail. internet. MimeMessage. RecipientType. TO, sendTo );
MimeMsg. setSubject (subject, "gb2312 ");
MimeBodyPart messageBodyPart1 = new MimeBodyPart ();
// MessageBodyPart. setText (UnicodeToChinese (text ));
MessageBodyPart1.setContent (text, mimeType );
Multipart multipart = new MimeMultipart (); // The attachment transmission format.
Multipart. addBodyPart (messageBodyPart1 );
For (int I = 0; I <filenames. length; I ++ ){
MimeBodyPart messageBodyPart2 = new MimeBodyPart ();
// Select the name of each attachment
String filename = filenames [I]. split (",") [0];
System. out. println ("attachment name:" + filename );
String displayname = filenames [I]. split (",") [1];
// Obtain the data source
FileDataSource fds = new FileDataSource (filename );
// Obtain the attachment and add it to the BodyPart
MessageBodyPart2.setDataHandler (new DataHandler (fds ));
// Get the same name as BodyPart
// MessageBodyPart2.setFileName (displayname );
// MessageBodyPart2.setFileName (fds. getName ());
MessageBodyPart2.setFileName (MimeUtility. encodeText (displayname ));
Multipart. addBodyPart (messageBodyPart2 );
}
MimeMsg. setContent (multipart );
// Set the sending date of the mail header
MimeMsg. setSentDate (new Date ());
MimeMsg. saveChanges ();
// Send an email
Transport. send (mimeMsg );
Transport. close ();
}
}
Verification class
Package common. util;
Import javax. mail. Authenticator;
Import javax. mail. PasswordAuthentication;
Public class Email_Autherticatorbean extends Authenticator
{
Private String m_username = null;
Private String m_userpass = null;
Public void setUsername (String username)
{
M_username = username;
}
Public void setUserpass (String userpass)
{
M_userpass = userpass;
}
Public Email_Autherticatorbean (String username, String userpass)
{
Super ();
SetUsername (username );
SetUserpass (userpass );
}
Public PasswordAuthentication getPasswordAuthentication ()
{
Return new PasswordAuthentication (m_username, m_userpass );
}
}