Несколько отправлений и проверка пользователей
Сначала будет представлена следующее, как отправлять электронные письма нескольким получателям и как использовать объект аутентификаторов для достижения аутентификации пользователя.
При указании получателя у нас может быть два способа указать его. Предыдущий блог временно указал получателя при отправке электронной почты, и он может быть фактически указан в объекте сообщения.
message.addrecipient (message.recipienttype.to, new InternetAddress ("[email protected]")); Это просто для того, чтобы отправить его одному получателю, но как справиться с ним с несколькими получателями? Есть также два способа справиться с этим.
1. При отправке электронных писем метод транспорта Sendmessage () использует массив для указания получателя. В настоящее время нам нужно только добавить больше адресов получателя, чтобы завершить его.
2. При использовании объекта сообщения для добавления получателей мы можем использовать метод Parse (String String) объекта InternetAddress. Этот метод возвращает массив InternetAddress, который также может быть отправлен нескольким получателям.
Мы знаем, что при разработке Javamail мы должны выполнить проверку авторизации. Цель проверки авторизации состоит в том, чтобы не дать другим произвольно отправлять электронные письма и уменьшить генерацию спама.
Мы можем проверить при получении объекта сеанса. В объекте сеанса есть два метода:
Оба метода имеют общий аутентификатор параметров, который является объектом аутентификатора. Объект Authenticator помогает пользователям проверять информацию и завершить проверку авторизации. В объекте Authenticator есть метод GetPassWordAuthentication (). Этот метод возвращает объект пароля. В объекте PasswordAuthentication есть два метода: getPassword () и getUsername (), что означает, что мы инкапсулируем пароль и имя пользователя в объект PasswordAuthentication. С помощью этих двух методов мы можем получить имя пользователя и пароль. Проверка информации пользователя может быть завершена.
Примеры следующие:
открытый класс javamail_02 {public static void main (string [] args) бросает исключение {свойства props = new Properties (); props.setproperty ("mail.smtp.auth", "true"); props.setproperty ("mail.transport.protocol", "smtp"); props.setproperty ("mail.host", "smtp.163.com"); Session Session = session.getInstance (reps, new Authenticator () {Защищенный пароль, getPasswordAuthentication () {return New PasswordAuthentication ("******", "*********");}}); session.setdebug (true); Сообщение msg = new Mimemessage (Session); msg.setfrom (new InternetAddress ("[email protected]")); msg.setsubject ("Программа испытаний Javamail ..."); msg.setContent ("<span style = 'color: red'> Это моя вторая программа испытания на Javamail .... </span>", "Text/html; charset = gbk"); //msg.setrecipients( recipienttype.to, новый адрес [] {new InternetAddress ("1111 @@ qq.com"), new InternetAddress ("[email protected]")}); msg.setrecipients (receienttype.to, InternetAddress.parse ("[email protected], [email protected]")); Transport.send (MSG); }} Электронная почта с фотографиями и вложениями
В реальных электронных письмах мы, как правило, включаем более сложные структуры электронной почты, такие как вложения, картинки, песни и т. Д. В настоящее время мы должны иметь четкое понимание структуры электронного письма. Перед разработкой составной электронной почты вам необходимо иметь определенное понимание структуры составных электронных писем.
На приведенном выше изображении показана общая структура составного электронного письма, и мы видим, что сложное электронное письмо состоит из нескольких частей. У него есть заголовок и тело, но тело не так просто, как раньше, но состоит из нескольких частей. Голова должна служить индикацией, который должен объяснить, какой сепаратор использовать для разделения текста и какие комбинированные отношения используются между частями текста. Для приведенного выше электронной почты он состоит из трех частей, каждая из которых со своей головой и телом, а первая часть также состоит из двух частей.
Комбинированные отношения составной электронной почты:
Есть много комбинаций между основными частями текста. Комбинированная связь выглядит следующим образом:
Альтернатива: выберите отношения. Вышеупомянутый простой текст и гипертекст - это отношение выбора.
Связанный: аффилированные отношения. Если приведенный выше гипертекстовый текст отображает изображение, то когда мы отправляем электронное письмо, мы должны включить изображение в электронное письмо, которое является так называемым встроенным ресурсом, который предназначен для гипертекста. Так что между ними есть отношения.
Смешанный: смешанные отношения. Простой текст, гипертекст и встроенные ресурсы образуют в целом, и они сопоставлены с вложениями, и между ними существует смешанная связь.
API для структуры организации составной почты:
Класс Mimemessage представляет всю электронную почту.
Класс MimeBodyPart представляет собой сообщение MIME по электронной почте.
Класс MiMemultIpart представляет собой комбинированное сообщение MIME, состоящее из нескольких сообщений MIME.
Следующий пример: электронная почта содержит два вложения, основная часть включает в себя простой текст и гипертекст, а гипертекст означает отображение изображения. Исходный код заключается в следующем:
открытый класс javamail_03 {public static void main (string [] args) выбрасывает исключение {свойства props = new Properties (); props.setproperty ("mail.smtp.auth", "true"); props.setproperty ("mail.transport.protocol", "smtp"); props.setproperty ("mail.host", "smtp.163.com"); Session Session = session.getInstance (reps, new Authenticator () {Защищенный пароль, getPasswordAuthentication () {return New PasswordAuthentication ("***", "******");}}); Сообщение сообщения = new Mimemessage (Session); message.setsubject ("Третья программа тестирования Javamail"); Message.setfrom (new InternetAddress ("/" "+mimeUtility.encodetext (" Chen Ming ")+"/"<[email protected]>")); message.setRecipents (receienttype.to, новый адрес [] {new InternetAddress ("[email protected]")}); // почтовый текст miMemultipart multipart = new MiMemultipart ("Mixed"); message.setContent (Multipart); /** Содержание сообщения* включает в себя одно тело электронной почты и два вложения*/ mimebodypart Content = new MimeBodyPart (); // Содержимое почты mimeBodyPart attach1 = new MimeBodyPart (); // Приложение 1 MimeBodyPart attach2 = new MimeBodyPart (); // Приложение 2 // Добавить содержимое электронной почты в Multipart Multipart.AddBodyPart (content); multipart.addbodypart (attch1); multipart.addbodypart (attch2); // Установить вложение 1 DataSource DS1 = new FileDataSource ("g: // ebook // oracle password.txt"); DataHandler DH1 = новый DataHandler (DS1); attach1.setdatahandler (DH1); attach1.setFileName ("oracle.txt"); // Установить вложение 2 DataSource DS2 = new FileSatasource ("g: //ebook//account.txt"); DataHandler DH2 = новый DataHandler (DS2); Attach2.setDataHandler (DH2); ATTH2.setFileName (mimeUtility.encodeText ("account.txt")); /** Установить содержание (текст) -----это сложное тело*, включая HTML-текст и отображение изображения*/ miMemultipart bodymultipart = new MiMemultipart ("связанный"); content.setContent (bodymultipart); // построить текст mimebodypart htmlbody = new mimebodypart (); Mimebodypart Gifbody = new MimeBodyPart (); bodymultipart.addbodypart (htmlbody); bodymultipart.addbodypart (Gifbody); // Установите DataSource DataSource = new FileDataSource ("f: //picture//picture//4.jpg"); DataHandler Gifdh = новый DataHandler (Gifds); Gifbody.SetDataHandler (GIFDH); gifbody.setheader ("content-id", "<"+gifds.getName ()+">"); //gifbody.setheader("content-location »,« http://www.itcast.cn/logo.gif »); // Установить HTML Body htmlbody.setContent ("<span style = 'color: red; размер шрифта: 16px'> Это мой третий тест на Javamail! Он включает в себя вложения и изображения, которые немного сложны ... </span> <br>" + "harceml <img src = 'cid: 4.jpg'/>" utml; message.savechanges (); // генерировать электронную почту Transport.send (сообщение); }}