Загрузка и загрузка вложений, отправка текстовых сообщений и отправка электронных писем - все это очень часто используются в программе. Я записал загрузку и загрузку файлов и отправил текстовые сообщения. Поскольку я был недавно занят, у меня не было времени выполнить функцию отправки электронной почты. Теперь я наконец -то успешно отправил электронные письма по электронной почте QQ с 163 почтовым ящиком. Ниже приведены соответствующие коды. Для получения подробной информации, пожалуйста, обратитесь к комментариям в коде:
Пакет -тест; импортировать java.util.arraylist; импортировать java.util.date; импортировать java.util.list; импортировать java.util.properties; импортировать java.util.regex.matcher; Импорт java.util.regex.pattern; импортировать javax.mail.address; импортировать javax.mail.authenticator; импортировать javax.mail.bodypart; импортировать javax.mail.message; импортировать javax.mail.passwordAuthentication; импортировать javax.mail.session; импортировать javax.mail.transport; Импорт javax.mail.internet.internetDdress; импортировать javax.mail.internet.mimebodypart; Импорт javax.mail.internet.mimemessage; Импорт javax.mail.internet.miMumultipart; Import com.sun.mail.util.mailsslsocketFactory; /// */ * // * @author tuzongxun123 // * @description mail Отправить тестовый класс // */public class sendmailtest {public static void main (string [] args) выбрасывает исключение {// Информация о конфигурации Pro = new Properties (); pro.put ("mail.smtp.host", "smtp.163.com"); pro.put ("mail.smtp.auth", "true"); // SSL шифрование MailsslSocketCastery sf = null; sf = new MailSslSocketFactory (); // Установить доверие всех хостов sf.settrustalhosts (true); pro.put ("mail.smtp.ssl.enable", "true"); pro.put ("mail.smtp.ssl.socketfactory", sf); // Создание сеанса для отправки электронных писем на основе свойств сеанса электронного письма. Здесь следует отметить, что имя пользователя не может быть суффикс, в противном случае оно не будет именем пользователя. // Следует также отметить, что пароль здесь не является паролем для входа в систему почтового ящика, а еще одним специальным кодом авторизации, сгенерированным клиентом MailAuthenticator Autorizer = new MailAuthenticator («Tuzongxun123», «Код авторизации клиента»); Session Session = session.getInstance (Pro, Authorzuzer); // Создание информации по электронной почте на основе сообщения Сообщения сеанса = New Mimemessage (Session); // Создание адреса адреса отправителя электронной почты из = new InternetAddress ("[email protected]"); // Установить отправителя сообщения электронной почты. SetFrom (от); // Проверьте список адресов электронной почты получателя <string> toaddresslist = new ArrayList <> (); toaddresslist.add ("[email protected]"); StringBuffer Buffer = new StringBuffer (); if (! toaddresslist.isempty ()) {string regex = "^([a-z0-9a-z]+[-| //.]?)+[a-z0-9a-z]@([a-z0-9a-z]+(-[a-z0-9a-z]+)? Шаблон p = pattern.compile (regex); for (int i = 0; i <toaddresslist.size (); i ++) {matchter match = p.matcher (toaddresslist.get (i)); if (match.matches ()) {buffer.append (toaddresslist.get (i)); if (i <toaddresslist.size () - 1) {buffer.append (","); }}}}} String toaddress = buffer.tostring (); if (! toaddress.isempty ()) {// Создать адрес получателя адреса сообщения [] to = internetAddress.parse (toaddress); // Установить адресное сообщение по адресу получателя по электронной почте. // Предмет электронной почты // message.setsubject ("Java Mail Test"); message.setsubject («Почему неправильно»); // Контейнер электронной почты miMemultipart mimemultipart = new MiMemultIpart (); // установить HTML BodyPart BodyPart = new MimeBodyPart (); // Содержимое почты // string htmltext = "java email test 111"; String htmlText = "Почему это неправильно"; bodypart.setContent (htmlText, "text/html; charset = utf-8"); mimemultipart.addbodypart (bodypart); // Добавить список вложений <string> fileadDresslist = new ArrayList <String> (); fileadDressList .Add ("c: // users // tuzongxun123 // desktop // new Microsoft Office Word Document.docx"); if (fileaddresslist! = null) {bodypart atchatepart = null; for (int i = 0; i <fileaddresslist.size (); i ++) {if (! fileaddresslist.get (i) .isempty ()) {atchatpart = new mimebodypart (); // DataSource DataSource DataSource Source = New FileDataSource (fileadDresslist.get (i)); // Добавить источник данных вложений в корпус почты AttachPart.SetDataHandler (New DataHandler (Source)); // Установите имя вложения на исходное имя файла ATTHARPART.SETFILENAME (mimeUtility.encodetext (source .getName ())); mimemultipart.addbodypart (attchpart); }}} message.setContent (miMemultipart); message.setsentdate (new Date ()); // Сохранить сообщение по электронной почте.saveChanges (); // Отправить электронную почту Transper.send (сообщение); }}} класс MailOuthenticator Extends Authenticator { / *** username* / private String username; / *** Пароль*/ Private String Password; /*** Создать новый экземпляр MailOuthenticator. * * @param username * @param пароль */ public mailauthenticator (String username, String Password) {this.username = username; this.password = пароль; } public String getPassword () {return пароль; } @Override защищенная пароль, getPasswordAuthentication () {return New PasswordAuthentication (имя пользователя, пароль); } public String getUsername () {return username; } public void setPassword (String password) {this.password = password; } public void setUsername (string username) {this.username = username; }}Примечание: мой коллега использовал мой код, чтобы заменить его на свою учетную запись и код авторизации клиента. Он сообщил об ошибке, как только он запустил ее. Затем он сбросил код авторизации клиента адреса электронной почты, и ошибка исчезла.
Выше приведено все об этой статье, я надеюсь, что для всех будет полезно изучать программирование Java.