1. Знакомство с электронной почтой
Электронное письмо содержит много информации. Основная информация следующая: Другие пока не рассматриваются, например, копия и т. д.:
1. Получатель: адрес электронной почты получателя, например [email protected].
2. Имя получателя: оно будет отображаться при отображении большинства электронных писем, например, loadfate [email protected].
3. Отправитель: адрес электронной почты отправителя.
4. Имя отправителя:
5. Тема: заголовок письма.
6. Содержание и вложения: основное содержание электронного письма.
2. Общие шаги по отправке электронных писем с помощью Java
В общих проектах отдельного почтового сервера нет. В основном используются чужие сервера.
1. Настройте SMTP-сервер: разные почтовые серверы имеют разные адреса. Например: smtp.qq.com представляет собой SMTP-сервер Tencent.
2. Авторизация: используйте учетную запись и пароль сервера для входа на сервер.
3. Создайте электронное письмо. Создайте электронное письмо, содержащее всю информацию, такую как отправитель, получатель, содержимое и т. д.
4. Установите свойства электронной почты: добавьте данные в свойства электронной почты.
5. Отправка электронных писем. Поскольку пакеты разные, методы отправки несовместимы.
3. Почта Java и Почта Apache
Apache Mail — это инкапсуляция Java Mail, которая проще в использовании и имеет лучшее представление о логической иерархии.
Чтобы использовать Java Mail, вам нужно всего лишь импортировать jar-пакет: mail.jar.
При использовании Apache Mail вам необходимо импортировать два jar-пакета: mail.jar и commons-email-1.3.1.jar.
4. Используйте Java Mail для отправки электронных писем.
Скопируйте код кода следующим образом:
public static void main(String[] args) выдает исключение {
конечная строка пользователя = "779554589";
окончательный пароль String = "";
Строка fromAddress = "[email protected]";
String toAddress = "[email protected]";
String subject = "Отправить тестовое сообщение по электронной почте";
String content = "Это тестовое письмо<b>ха-ха</b>";
//Параметры конфигурации
Свойства props = новые свойства();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.qq.com");
//Метод 1: использовать транспортный объект для отправки электронной почты
{
//Генерируем сессию через параметры
Сеанс session = Session.getInstance(реквизит);
//Включаем режим отладки
session.setDebug(истина);
//Создаем электронное письмо и устанавливаем информацию
Сообщение сообщения = новый MimeMessage (сессия);
message.setFrom(новый InternetAddress(fromAddress));
message.setSubject(тема);
message.setText(содержание);
//Создаем перевод
Транспортный транспорт = session.getTransport();
//Подключаемся к smtp-серверу
Transport.connect(пользователь, пароль);
//отправлять
Transport.sendMessage(message, new InternetAddress[] {new InternetAddress(toAddress) });
транспорт.закрыть();
}
//Метод 2: использовать статический метод класса Transport для отправки электронных писем
{
//Получить авторизованное соединение при создании сеанса
Сеанс сеанса = Session.getInstance(реквизит, новый Authenticator() {
@Override
защищенный PasswordAuthentication getPasswordAuthentication() {
вернуть новый PasswordAuthentication(пользователь, пароль);
}
});
session.setDebug(истина);
//Создаем электронное письмо и устанавливаем информацию
Сообщение сообщения = новый MimeMessage (сессия);
message.setSubject(тема);
message.setFrom(новый InternetAddress(fromAddress));
message.setRecipient(RecipientType.TO, новый InternetAddress(toAddress));
message.setContent(content, "text/html;charset=utf-8");
//Отправить напрямую, сообщение генерируется через авторизованный сеанс
Transport.send(сообщение);
}
}
5. Используйте Apache Mail для отправки электронных писем
Скопируйте код кода следующим образом:
общественный класс ApacheMailTest {
// smtp-сервер
частная строка имя_хоста = "smtp.qq.com";
//Учетная запись и пароль
частная строка userName = "779554589";
частный строковый пароль = «Это секрет»;
// отправитель
частная строка fromAddress = "[email protected]";
// Имя отправителя
частная строка fromName = «loadfate»;
public static void main(String[] args) выдает исключение {
//Получатель и имя получателя
String toAddress = "[email protected]";
String toName = "loadfate";
Тест ApacheMailTest = новый ApacheMailTest();
// Все исключения обрабатываются для удобства просмотра
test.sendSimpleEmail(toAddress, toName);
test.sendHtmlEmail(toAddress, toName);
test.sendMultiPartEmail(toAddress, toName);
System.out.println("Отправка завершена");
}
//Отправляем простое электронное письмо, похожее на сообщение
public void sendSimpleEmail(String toAddress, String toName) выдает исключение {
Электронная почта SimpleEmail = новый SimpleEmail();
email.setHostName(hostName);//Установить smtp-сервер
email.setAuthentication(userName, пароль);//Установить информацию для авторизации
email.setCharset("utf-8");
email.setFrom(fromAddress, fromName, "utf-8");//Установить информацию об отправителе
email.addTo(toAddress, toName, "utf-8");//Установить информацию о получателе
email.setSubject("Тестируемый");//Установим тему
email.setMsg("Это простой тест!");//Установим содержимое письма
email.send();//Отправить письмо
}
//Отправляем электронное письмо с HTML-содержимым
public void sendHtmlEmail(String toAddress, String toName) выдает исключение {
Электронная почта HtmlEmail = новый HtmlEmail();
электронная почта.setHostName(имя хоста);
email.setAuthentication(имя пользователя, пароль);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("Это электронное письмо в формате HTML");
// Установка содержимого HTML. При фактическом использовании вы можете прочитать написанный код HTML из текста.
email.setHtmlMsg("<div style='width:100px;height:200px;'>a</div>");
электронная почта.отправить();
}
//Отправляем сложные электронные письма, включая вложения и т. д.
public void sendMultiPartEmail(String toAddress, String toName) выдает исключение {
Электронная почта MultiPartEmail = null;
электронная почта = новый MultiPartEmail();
электронная почта.setHostName(имя хоста);
email.setAuthentication(имя пользователя, пароль);
email.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(fromAddress, fromName, "utf-8");
email.setSubject("Это письмо с вложениями");
email.setMsg("<a href='#'>Проверить содержимое</a>");
//Добавляем дополнительный контент в письмо
Вложение EmailAttachment = новый EmailAttachment();
Attachment.setPath("D://mail.txt");//локальный файл
// Attachment.setURL(новый URL("http://xxx/a.gif"));//удаленный файл
Attachment.setDisposition(EmailAttachment.ATTACHMENT);
Attachment.setDescription("Информация описания");
// Устанавливаем отображаемое имя вложения, которое должно быть закодировано, иначе китайский язык будет искажен
Attachment.setName(MimeUtility.encodeText("Mail.txt"));
//Добавляем вложение в письмо
электронная почта.attach(вложение);
электронная почта.отправить();
}
}
6. Папка проекта вложения: maildemo.
Адрес загрузки: http://pan.baidu.com/s/1bn1Y6BX
Если у вас есть какие-либо вопросы или предложения, пожалуйста, свяжитесь со мной
Описание файла:
1. maildemo.zip: исходный код maildemo.
2. mail.jar: Jar-пакет Java Mail.
3. commons-email-1.3.1.jar: jar-пакет Apache Mail.