Джакарта поштасы - Jakarta Mail - Wikipedia

Джакарта поштасы (бұрынғы JavaMail) - бұл Джакарта API жіберу және қабылдау үшін қолданылады электрондық пошта арқылы SMTP, POP3 және IMAP. Джакарта Почтасы кіріктірілген Java EE платформасы, сонымен қатар пайдалануға арналған қосымша пакетті ұсынады Java SE.[1]

Қазіргі нұсқасы - 1.6.5, 2020 жылы наурызда шығарылды.[2] Басқа ашық ақпарат көзі Джакарта поштасын енгізу бар - GNU JavaMail - тек JavaMail спецификациясының 1.3 нұсқасын қолдай отырып, ол жалғыз тегін ұсынады ҰБТӨП backend, бұл оқуға және жіберуге осы технологияны қолдануға мүмкіндік береді жаңалықтар тобы мақалалар.

2019 жылдан бастап бағдарламалық жасақтама ретінде белгілі Джакарта поштасы, және бөлігі болып табылады Джакарта сауда маркасы (бұрын Java EE).

Лицензиялау

Джакарта поштасы ретінде орналастырылған ашық ақпарат көзі жоба Eclipse.org оның жаңа атауымен Джакарта поштасы.[3]

Джакарта Почтаның негізгі кодының көпшілігі келесі лицензиялар бойынша лицензияланған:

  • EPL-2.0
  • GPL-2.0 Classpath Exception лицензиясымен
  • Демо-бағдарламалардың бастапқы коды BSD лицензиясы бойынша лицензияланған

Мысалдар

импорт java.util. *;импорт javax.mail. *;импорт javax.mail.internet. *;импорт javax.activation. *;// Қарапайым, жеке бөлім, мәтінді / қарапайым электрондық поштаны жіберіңізқоғамдық сынып TestEmail {    қоғамдық статикалық жарамсыз негізгі(Жол[] доға) {        // СІЗДІҢ ХАТТАРЫҢЫЗДЫ ОСЫНДА ЖАСАҢЫЗ!        Жол дейін = «sendToMailAddress»;        Жол бастап = «sendFromMailAddress»;        // Интернет-провайдеріңіздің мекен-жайын осы жерде ауыстырыңыз!        Жол хост = «smtp.yourisp.invalid»;        // Сипаттарды құрыңыз, Session алыңыз        Қасиеттері реквизиттер = жаңа Қасиеттері();        // Егер статикалық Transport.send () пайдаланылса,        // оны қай хостқа жіберу керектігін көрсету керек        реквизиттер.қойды(«mail.smtp.host», хост);        // Сахнаның артында не болып жатқанын көру        реквизиттер.қойды(«mail.debug», «шын»);        Сессия сессия = Сессия.getInstance(реквизиттер);        тырысу {            // Хабарлама            Хабар msg = жаңа MimeMessage(сессия);            // Хабар атрибуттарын орнатыңыз            msg.setFrom(жаңа InternetAdres(бастап));            InternetAdres[] мекен-жайы = {жаңа InternetAdres(дейін)};            msg.setRecipients(Хабар.Алушының типі.TO, мекен-жайы);            msg.setSubject(«Java арқылы электрондық поштаны тексеру»);            msg.setSentDate(жаңа Күні());            // Хабар мазмұнын орнату            msg.setText(«Бұл жіберудің сынағы» +                        «Java арқылы қарапайым мәтінді электрондық пошта.  n» +                        «Міне 2-жол.»);            // Хабарлама жіберу            Көлік.жіберу(msg);        }        аулау (MessagingException мекс) {            // Барлық кірістірілген (тізбектелген) ерекшеліктерді де басып шығарады            мекс.printStackTrace();        }    }}// Сабақтың аяқталуы

Көп бөлімді электрондық пошта, HTML электрондық пошта және файл тіркемелерін жіберуге арналған үлгі

импорт java.util. *;импорт java.io. *;импорт javax.mail. *;импорт javax.mail.internet. *;импорт javax.activation. *;қоғамдық сынып SendMailUsage {    қоғамдық статикалық жарамсыз негізгі(Жол[] доға) {        // СІЗДІҢ Поштаңыздың мекен-жайларын ауыстырыңыз !!!        Жол дейін = «sendToMailAddress»;        Жол бастап = «sendFromMailAddress»;        // Интернет-провайдеріңіздің мекен-жайын осы жерде ауыстырыңыз !!!        Жол хост = «smtpserver.yourisp.invalid»;        // Сессияның қасиеттерін жасаңыз        Қасиеттері реквизиттер = жаңа Қасиеттері();        // Егер статикалық Transport.send () пайдаланылса,        // мұнда пошта серверін көрсету керек        реквизиттер.қойды(«mail.smtp.host», хост);        // Сахнаның артында не болып жатқанын көру        реквизиттер.қойды(«mail.debug», «шын»);        // Сессия алыңыз        Сессия сессия = Сессия.getInstance(реквизиттер);        тырысу {            // Электрондық пошта жіберу үшін көлік нысанын алыңыз            Көлік автобус = сессия.getTransport(«smtp»);            // Мұнда тек бір рет қосылыңыз            // Transport.send () әр жіберуден кейін ажыратылады            // Әдетте SMTP үшін пайдаланушы аты мен пароль қажет емес            автобус.қосу();            //bus.connect("smtpserver.yourisp.net «,» username «,» password «);            // Хабарлама            Хабар msg = жаңа MimeMessage(сессия);            // Хабар атрибуттарын орнатыңыз            msg.setFrom(жаңа InternetAdres(бастап));            InternetAdres[] мекен-жайы = {жаңа InternetAdres(дейін)};            msg.setRecipients(Хабар.Алушының типі.TO, мекен-жайы);            // Электрондық пошта мекенжайларының үтірмен бөлінген тізімін талдау. Қатал болыңыз.            msg.setRecipients(Хабар.Алушының типі.CC,                                InternetAdres.талдау(дейін, шын));            // үтірді / бос орынмен бөлінген тізімді талдау. Біраз босаңдықты кесіңіз.            msg.setRecipients(Хабар.Алушының типі.BCC,                                InternetAdres.талдау(дейін, жалған));            msg.setSubject(«Java арқылы электрондық поштаны тексеру»);            msg.setSentDate(жаңа Күні());            // Хабар мазмұнын орнатыңыз және жіберіңіз            setTextContent(msg);            msg.өзгерістерді сақтау();            автобус.хат жіберу(msg, мекен-жайы);            setMultipartContent(msg);            msg.өзгерістерді сақтау();            автобус.хат жіберу(msg, мекен-жайы);            setFileAsAttachment(msg, «C: /WINDOWS/CLOUD.GIF»);            msg.өзгерістерді сақтау();            автобус.хат жіберу(msg, мекен-жайы);            setHTMLContent(msg);            msg.өзгерістерді сақтау();            автобус.хат жіберу(msg, мекен-жайы);            автобус.жабық();        }        аулау (MessagingException мекс) {            // Барлық кірістірілген (тізбектелген) ерекшеліктерді де басып шығарады            мекс.printStackTrace();            // Кірістірілген ерекшеліктерге қалай қол жеткізуге болады            уақыт (мекс.getNextException() != нөл) {                // Тізбектегі келесі ерекшелікті алыңыз                Ерекше жағдай бұрынғы = мекс.getNextException();                бұрынғы.printStackTrace();                егер (!(бұрынғы тұрақты емес MessagingException)) үзіліс;                басқа мекс = (MessagingException)бұрынғы;            }        }    }    // Қарапайым, бір бөлімнен тұратын мәтін / қарапайым электрондық пошта.    қоғамдық статикалық жарамсыз setTextContent(Хабар msg) лақтырады MessagingException {            // Хабар мазмұнын орнату            Жол mytxt = «Бұл жіберудің сынағы» +                            «Java арқылы қарапайым мәтінді электрондық пошта.  n» +                            «Міне 2-жол.»;            msg.setText(mytxt);            // балама форма            msg.setContent(mytxt, «мәтін / қарапайым»);    }    // Қарапайым көп бөлім / аралас электрондық пошта. Екі дене бөлігі де мәтін / қарапайым.    қоғамдық статикалық жарамсыз setMultipartContent(Хабар msg) лақтырады MessagingException {        // Бірінші бөлімді жасаңыз және толтырыңыз        MimeBodyPart p1 = жаңа MimeBodyPart();        p1.setText(«Бұл көп бөлімді электрондық поштаның бірінші бөлігі.»);        // Екінші бөлімді жасаңыз және толтырыңыз        MimeBodyPart p2 = жаңа MimeBodyPart();        // Мәтіндік мазмұнға шарсетті қалай орнату керек        p2.setText(«Бұл екінші бөлім», «us-ascii»);        // Көп бөлімді құру. Оған BodyParts қосыңыз.        Көп бөлім MP = жаңа MimeMultipart();        MP.addBodyPart(p1);        MP.addBodyPart(p2);        // Хабардың мазмұны ретінде көп бөлікті орнатыңыз        msg.setContent(MP);    }    // Файлды тіркеме ретінде орнатыңыз. JAF FileDataSource қолданады.    қоғамдық статикалық жарамсыз setFileAsAttachment(Хабар msg, Жол файл атауы)             лақтырады MessagingException {        // Бірінші бөлімді жасаңыз және толтырыңыз        MimeBodyPart p1 = жаңа MimeBodyPart();        p1.setText(«Бұл көп бөлімді электрондық поштаның бірінші бөлігі.» +                    «Екінші бөлік - бұл қосымша ретінде файл»);        // Екінші бөлімді жасаңыз        MimeBodyPart p2 = жаңа MimeBodyPart();        // Екінші бөлікке файл қойыңыз        FileDataSource фдс = жаңа FileDataSource(файл атауы);        p2.setDataHandler(жаңа DataHandler(фдс));        p2.setFileName(фдс.getName());        // Көп бөлімді құру. Оған BodyParts қосыңыз.        Көп бөлім MP = жаңа MimeMultipart();        MP.addBodyPart(p1);        MP.addBodyPart(p2);        // Хабардың мазмұны ретінде көп бөлікті орнатыңыз        msg.setContent(MP);    }    // HTML мазмұнының бір бөлігін орнатыңыз.    // Кез-келген типтегі мәліметтерді жіберу ұқсас.    қоғамдық статикалық жарамсыз setHTMLContent(Хабар msg) лақтырады MessagingException {        Жол HTML = «  »</span> <span class="o">+</span>                        <span class="n">msg</span><span class="p">.</span><span class="na">getSubject</span><span class="p">()</span> <span class="o">+</span>                        <span class="s">«  

» + msg.getSubject() + «

Бұл HTML электрондық поштасын жіберуге арналған тест» + «Java арқылы. »; // HTMLDataSource - тұрақты кіріктірілген класс msg.setDataHandler(жаңа DataHandler(жаңа HTMLDataSource(HTML))); } /* * HTML электрондық пошта мазмұнын жіберу үшін JAF деректер көзі ретінде жұмыс істеуге арналған статикалық кірістірілген класс */ статикалық сынып HTMLDataSource құрал-саймандар DataSource { жеке Жол HTML; қоғамдық HTMLDataSource(Жол htmlString) { HTML = htmlString; } // html жолын InputStream-ге қайтару. // Жаңа ағын әр уақытта қайтарылуы керек. қоғамдық InputStream getInputStream() лақтырады IOException { егер (HTML == нөл) лақтыру жаңа IOException(«Нөлдік HTML»); қайту жаңа ByteArrayInputStream(HTML.getBytes()); } қоғамдық OutputStream getOutputStream() лақтырады IOException { лақтыру жаңа IOException(«Бұл DataHandler HTML жаза алмайды»); } қоғамдық Жол getContentType() { қайту «text / html»; } қоғамдық Жол getName() { қайту «Тек электрондық поштаны жіберуге арналған JAF мәтіні / html dataSource»; } }} // Сабақтың аяқталуы

Әдебиеттер тізімі

  1. ^ «JavaEE қосу». Алынған 12 қараша 2014.
  2. ^ ""Жаңалықтар"". Алынған 13 мамыр 2020.
  3. ^ «Джакарта поштасы». Алынған 3 қыркүйек 2019.

Сыртқы сілтемелер