1 Creating a class for sending messages
1 PackageCom.latiny.service;2 3 Importjava.io.IOException;4 ImportJava.io.InputStream;5 Importjava.util.Date;6 Importjava.util.Properties;7 Importjavax.mail.Session;8 ImportJavax.mail.Transport;9 Importjavax.mail.internet.InternetAddress;Ten ImportJavax.mail.internet.MimeMessage; One A Public classSendMail { - - /* the 1 sender's mailbox and password - 2 Some mailbox servers in order to increase the security of the mailbox itself password, the SMTP client set a separate password (some mailboxes are called "Authorization Code"), - 3 for a mailbox with a separate password, the password must be used for this individual password (authorization code). - */ + PrivateString SendEmail; - PrivateString password; + A //the SMTP server address of the sender's mailbox must be accurate, different mail server addresses are different, general (only general, not absolute) format: smtp.xxx.com at PrivateString host; - - //Recipient Mailbox - PrivateString Receiveemail; - - //send a topic, send content in PrivateString subject; - PrivateString content; to + //reading configuration Files - PrivateProperties pp; the InputStream instream; * $ //assigning values to member variables from the system's configuration filePanax Notoginseng Private voidinitvariable () - { thePP =NewProperties (); +Instream = SendMail.class. getClassLoader (). getResourceAsStream ("Com/latiny/service/emailconfig.properties"); A Try the { + pp.load (instream); -SendEmail = Pp.getproperty ("SendEmail"); $Password = pp.getproperty ("Password"); $Host = Pp.getproperty ("host"); - -}Catch(IOException e) { the //TODO auto-generated Catch block - e.printstacktrace ();Wuyi } the } - Wu PublicSendMail (String receiveemail, string subject, string content) - { About This. Subject =subject; $ This. Receiveemail =Receiveemail; - This. Content =content; - initvariable (); - sendout (); A } + the PrivateMimeMessage CreateMessage (Session session, string subject, string content)throwsException - { $ //Create a Mail object theMimeMessage message =NewMimeMessage (session); the the //Set Sender theMessage.setfrom (NewInternetAddress (SendEmail, "Order succeeded", "UTF-8")); - in //Recipients (can add multiple recipients, CC, BCC) theMessage.setrecipient (MimeMessage.RecipientType.TO,NewInternetAddress (Receiveemail, "Latiny user", "UTF-8")); the About //Message Subject theMessage.setsubject (Subject, "UTF-8"); the the //Content: Message body (HTML tags can be used) +Message.setcontent (Content, "Text/html;charset=utf-8"); - the //Sending TimeBayiMessage.setsentdate (NewDate ()); the the //Save Settings - message.savechanges (); - the returnmessage; the } the the Private voidsendout () - { the the Try the {94 //Create a parameter configuration for connecting to the mail server's parameter configuration theProperties props =NewProperties ();//parameter Configuration theProps.setproperty ("Mail.transport.protocol", "SMTP");//protocol Used (JavaMail specification requirements) theProps.setproperty ("Mail.smtp.host", host);//SMTP server address for sender's mailbox98Props.setproperty ("Mail.smtp.auth", "true");//Request Authentication Required About - //PS: Some mailbox servers require SSL security authentication for SMTP connections (for enhanced security, the mailbox supports SSL connections and can be turned on itself),101 //If you cannot connect to the mail server, look carefully at the log printed by the console, if there are errors such as "Connection failed, require SSL secure connection" ,102 //Open the SSL secure connection by opening the comment code between/* ... */. 103 //the port of the SMTP server (the port of the non-SSL connection generally defaults to 25, can not be added, if the SSL connection is turned on, you need to change the port of the SMTP server that corresponds to the mailbox, you can see the Help for the corresponding mailbox service .104 //QQ Mailbox SMTP (SLL) port is 465 or 587, other mailboxes to see for themselves) the 106 /* 107 final String smtpport = "465";108 props.setproperty ("Mail.smtp.port", smtpport);109 props.setproperty ("Mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); the props.setproperty ("Mail.smtp.socketFactory.fallback", "false");111 props.setproperty ("Mail.smtp.socketFactory.port", smtpport); the */113 the //Create session objects based on configuration to communicate with mail servers theSession session =session.getinstance (props); theSession.setdebug (true);117MimeMessage message = This. CreateMessage (Session, This. Subject, This. content);118 119 //Get message Transfer objects based on Session -Transport Transport =Session.gettransport ();121 122 //Use your email account and password to connect to the mail server, where the authenticated mailbox must match the sender's mailbox in the message, otherwise the error123 // 124 //ps_01: The key to success or failure in this sentence, if the connection server fails, it will output the log of the corresponding failure reason in the console . the //carefully review the reason for the failure, and some mailbox servers will return an error code or see a link to the error type, depending on the given error126 //type to the corresponding mail server on the help site to see the specific failure reason. 127 // - //ps_02: The reason for the connection failure is usually the following, carefully examining the code:129 //(1) The mailbox does not have SMTP service turned on; the //(2) e-mail password error, for example, some mailboxes open a separate password;131 //(3) The mailbox server requires that SSL secure connection be used; the //(4) The request is too frequent or other reasons, the mail server refused service;133 //(5) If the above points are OK, go to the mail server website to find help. 134 //135 //ps_03: Look at log carefully, read the log carefully, read the log, the cause of the error is described in log. 136 Transport.connect (Sendemail,password);137 138 //send a message to all of the receiving addresses, message.getallrecipients () gets all the recipients that were added when the message object was created, Cc, BCC .139 transport.sendmessage (Message, message.getallrecipients ()); $ 141 //Close Connection142 transport.close ();143 144}Catch(Exception e) {145 //TODO auto-generated Catch block146 e.printstacktrace ();147 }148 }149 Max}
Configuration file Emailconfig.properties:
SendEmail = [email protected]==smtp.163.com
Java Mail enables third-party mail delivery