Я узнал о Javamail сегодня. Для удобства использования в будущем я сам написал кусок кода и набрал его в пакет JAR для удобства будущего использования. хе -хе
Следующие три кода - это мой код. Поскольку я не знаю, как загрузить пакет JAR в Javaeye, друзья возвращаются и делают его сами.
Мой код имеет три класса:
Первый класс: mailsenderinfo.java
Кода -копия выглядит следующим образом:
пакет com.util.mail;
/**
* Основная информация, необходимая для отправки электронных писем
*/
импортировать java.util.properties;
открытый класс MailSenderInfo {
// IP и порт сервера, который отправляет почту
частная строка Mailerverhost;
Private String MailServerport = "25";
// Адрес отправителя электронной почты
частная строка от AddRess;
// адрес получателя электронной почты
частная строка Toaddress;
// Войдите в имя пользователя и пароль сервера отправки электронной почты
частное имя пользователя;
Private String Password;
// требуется аутентификация
частная логическая проверка = false;
// тема электронной почты
частная строковая тема;
// текстовое содержание электронной почты
частный строковый контент;
// Имя файла вложения электронной почты
частная строка [] AttachFilenAmes;
/**
* Получите атрибуты электронной почты
*/
публичные свойства getProperties () {
Свойства p = новые свойства ();
p.put ("mail.smtp.host", this.mailserverhost);
p.put ("mail.smtp.port", this.mailserverport);
p.put ("mail.smtp.auth", подтвердить? "true": "false");
возврат P;
}
public String getMailServerhost () {
вернуть MailServerhost;
}
public void setmailserverhost (String mailerverhost) {
this.mailserverhost = mailerverhost;
}
public String getMailServerport () {
вернуть MailServerport;
}
public void SetMailServerport (String Mailerverport) {
this.mailserverport = mailerverport;
}
public boolean isvalidate () {
вернуть подтверждение;
}
public void setValidate (boolean validate) {
this.validate = validate;
}
public String [] getattachfilenames () {
вернуть прикрепление filenEnames;
}
public void setattachfilenames (String [] filenames) {
this.attachfilenames = имена файлов;
}
public String getFromAddress () {
вернуться от Address;
}
public void setfromAddress (string fromAddress) {
this.fromaddress = fromAddress;
}
public String getPassword () {
вернуть пароль;
}
public void setPassword (String пароль) {
this.password = пароль;
}
public String getToadDress () {
вернуть Toaddress;
}
public void cettilAddress (String toaddress) {
this.toaddress = toaddress;
}
public String getUsername () {
вернуть имя пользователя;
}
public void setusername (string username) {
this.username = имя пользователя;
}
public String getSubject () {
Вернуть субъект;
}
public void setSubject (строка субъекта) {
this.subject = субъект;
}
public String getContent () {
вернуть контент;
}
public void setContent (String TextContent) {
this.content = textContent;
}
}
Второй класс: SimpleMailsender.java
Кода -копия выглядит следующим образом:
пакет com.util.mail;
импортировать java.util.date;
импортировать java.util.properties;
импортировать javax.mail.address;
импортировать javax.mail.bodypart;
импортировать javax.mail.message;
Импорт javax.mail.messagingException;
импортировать javax.mail.multipart;
импортировать javax.mail.session;
импортировать javax.mail.transport;
Импорт javax.mail.internet.internetDdress;
импортировать javax.mail.internet.mimebodypart;
Импорт javax.mail.internet.mimemessage;
Импорт javax.mail.internet.miMumultipart;
/**
* Простая почта (почта без вложений) отправитель
*/
открытый класс SimpleMailsender {
/**
* Отправить электронные письма в текстовом формате
* @param mailInfo Информация о отправке электронной почты
*/
public boolean sendtextmail (mailsenderinfo mailinfo) {
// Определите, требуется ли аутентификация идентификации
MyAuthenticator Authenticator = null;
Properties pro = mailInfo.getProperties ();
if (mailInfo.isvalidate ()) {
// Если требуется аутентификация идентификации, создайте аутентификатор пароля
Authenticator = new MyAuthenticator (mailInfo.getUsername (), mailInfo.getPassword ());
}
// Создание сеанса для отправки электронных писем на основе свойств электронной почты и валидатора пароля
SESSION SENTMAILSESSESS = SESSION.GetDefaultInstance (Pro, Authenticator);
пытаться {
// Создать почтовое сообщение на основе сеанса
Сообщение MailMessage = new MimeMessage (SendMailSession);
// Создать адрес отправителя электронной почты
Адрес из = new InternetAddress (mailInfo.getFromAddress ());
// Установить отправителя сообщения электронной почты
mailmessage.setfrom (от);
// Создать адрес получателя электронной почты и установить его на сообщение электронной почты
Адрес = new InternetAddress (mailInfo.getToadDress ());
mailmessage.setRecipient (message.recipienttype.to, to);
// Установить тему сообщения электронной почты
mailmessage.setsubject (mailInfo.getSubject ());
// Установите время для отправки сообщений электронной почты
mailmessage.setsentdate (new Date ());
// Установить основной контент сообщения электронной почты
String mailContent = mailInfo.getContent ();
mailmessage.settext (mailContent);
// Отправить почту
Transport.send (mailmessage);
вернуть истину;
} catch (messagingException ex) {
ex.printstacktrace ();
}
вернуть ложь;
}
/**
* Отправить электронные письма в формате HTML
* @param mailInfo
*/
Public Static Boolean Sendhtmlmail (mailsenderinfo mailInfo) {
// Определите, требуется ли аутентификация идентификации
MyAuthenticator Authenticator = null;
Properties pro = mailInfo.getProperties ();
// Если требуется аутентификация идентификации, создайте аутентификатор пароля
if (mailInfo.isvalidate ()) {
Authenticator = new MyAuthenticator (mailInfo.getUsername (), mailInfo.getPassword ());
}
// Создание сеанса для отправки электронных писем на основе свойств электронной почты и валидатора пароля
SESSION SENTMAILSESSESS = SESSION.GetDefaultInstance (Pro, Authenticator);
пытаться {
// Создать почтовое сообщение на основе сеанса
Сообщение MailMessage = New MimeMessage (SendMailSession);
// Создать адрес отправителя электронной почты
Адрес из = new InternetAddress (mailInfo.getFromAddress ());
// Установить отправителя сообщения электронной почты
mailmessage.setfrom (от);
// Создать адрес получателя электронной почты и установить его на сообщение электронной почты
Адрес = new InternetAddress (mailInfo.getToadDress ());
// message.recipienttype.to attribute указывает, что тип приемника должен
mailmessage.setRecipient (message.recipienttype.to, to);
// Установить тему сообщения электронной почты
mailmessage.setsubject (mailInfo.getSubject ());
// Установите время для отправки сообщений электронной почты
mailmessage.setsentdate (new Date ());
// Minimultipart Class - это класс контейнеров, который содержит объекты типа MimeBodyPart
Multipart Mainpart = new MiMemultIpart ();
// Создать MimeBodyPart, содержащий HTML -контент
Bodypart html = new MimeBodyPart ();
// Установить контент HTML
html.setContent (mailInfo.getContent (), "text/html; charset = utf-8");
mainpart.addbodypart (html);
// Установить объект MINALIPART на почту содержимого по почте
mailmessage.setContent (mainpart);
// Отправить почту
Transport.send (mailmessage);
вернуть истину;
} catch (messagingException ex) {
ex.printstacktrace ();
}
вернуть ложь;
}
}
Третья категория: myauthenticator.java
Кода -копия выглядит следующим образом:
пакет com.util.mail;
импортировать javax.mail.*;
открытый класс MyAuthenticator расширяет аутентификатор {
String username = null;
String password = null;
public myauthenticator () {
}
public myauthenticator (String username, String password) {
this.username = имя пользователя;
this.password = пароль;
}
Защищенная пароль -автотенка getPasswordAuthentication () {
вернуть новую пароль (имя пользователя, пароль);
}
}
Ниже приведен код с использованием трех вышеуказанных классов:
Кода -копия выглядит следующим образом:
public static void main (string [] args) {
// Этот класс в основном устанавливает электронную почту
MailSenderInfo mailInfo = new MailSenderInfo ();
mailInfo.setmailServerhost ("smtp.163.com");
mailInfo.setmailServerport ("25");
mailInfo.setValidate (true);
mailInfo.setuserName ("[email protected]");
mailInfo.setPassword ("*********"); // Ваш пароль электронной почты
mailInfo.setFromAddress ("[email protected]");
mailInfo.settoAddress ("[email protected]");
mailInfo.setsubject («установить название почтового ящика»);
mailInfo.setContent («Установить контент почтового ящика»);
// Этот класс в основном отправляет электронные письма
SimpleMailSender SMS = новый SimpleMailSender ();
sms.sendtextmail (mailInfo); // Отправить текстовый формат
sms.sendhtmlmail (mailInfo); // Отправить формат HTML
}
Наконец, позвольте мне уделить вам внимание:
1. Используя этот код, вы можете выполнить функцию отправки электронной почты в Javamail. Все три категории необходимы.
2. Я использовал пакет com.util.mail, чтобы упаковать эти три класса.
3. Не используйте только что зарегистрировано адрес электронной почты для отправки электронных писем в программу. Потому что вы не можете отправить это. Только что зарегистрированный адрес электронной почты не даст вам таких разрешений, что означает, что вы не можете передать проверку. Вам нужно использовать адрес электронной почты, который вы используете часто, и это занимает много времени.
4. Другая проблема - два предложения mailinfo.setmailserverhost («smtp.163.com»); То есть, если вы используете сервер 163SMTP, то вы должны использовать адрес электронной почты 163 для отправки адреса электронной почты.
5. В Интернете много объяснений об ошибках проверки Javamail, но я вижу только один. Это моя третья категория. Пока вы копируете весь код, я думаю, что проблем не будет.