Efek Keseluruhan:
Akhir Pengirim: Email NetEase; Menerima Akhir: Email QQ.
1. Web Front-end
2. Anda dapat melihat email yang dikirim melalui kode java di email netease "dikirim"
3. Anda juga dapat melihat efek ini di kotak surat QQ
Proses Implementasi:
1. Web Front-end (tata letak bootstrap)
<Form Action = "Mailaction! SendMail" Metode = "POST" NAME = "MailForm" id = "MailFormId"> <ul> <li> <viv> <span id = "dasar-addon1"> Nama: </span> <input type = "liup" <paceholder = "nama Anda" = "mailform.name" aria-deescribedby = "liada-addon =" name "name =" mailform.name "aria-describedby =" liada-addon = "name" name = "mailForm.name" ARIA-DESITEDBY = "LiNAD-ADATION =" LiNADE-ADAT-ADATIOND1 " id = "dasar-addon2"> tel: </span> <input type = "text" placeholder = "ponsel Anda" name = "mailForm.phone" aria-dideskripsi = "dasar-addon1"> </div> </li> <li> <Div> <span id = "TECKE-ADDON2"> Email: </span> <input> <span = "TECH" TECK "TECK" TECK "MOILE2"> EMAIL </li> <input = "TECK =" TECK "TECK" TECH "MOILE2"> EMAIL </li> <input = " name = "mailform.e_mail" aria-deskripsi = "dasar-addon1"> </div> </li> <li style = "padding-top: 20px;"> <span> Pesan: </span> <br> <br> <TextArea Berang = "10" name = "mailform.content" Placeholder "Placinger =" Li. " <li> <senter> <tombol onclick = "$ ('#mailFormId'). Kirim ();" type = "Tombol"> Kirim Email </button> </center> </li> </ul> </form> 2. Pertama persiapkan template XML (<xml-body> berisi teks dalam format HTML untuk email).
<?xml version="1.0" encoding="UTF-8"?><!-- Change spaces to full-width spaces to ensure that html will not filter out spaces--><xml-body> <html> <head> </head> <body style="margin: 0; padding: 0;"> <table cellpadding="0" cellpacing="0"> <tbody><tr> <td style = "Padding: 10px 0 30px 0;"> <Table Align = "Center" CellPadding = "0" CellPacing = "0" Style = "Border: 1px Solid #CCCCCC; Border-Collapse: Collapse;"> <TBody> <TR> <TD Align = "Center" BGCOLOR = "70BBD9; #153643; 30px; "> <Table CellPadding =" 0 "CellPacing =" 0 "> <TBody> <tr> <td style =" Color: #153643; </b> </td> </tr> <tr> <td style = "padding: 20px 0 30px 0; warna: #153643; font-family: arial, sans-serif; ukuran font: 16px; line-height: 20px;"> {3} </td> </tr> <"cell" cell; <tbody> <tr> <td valign = "top"> <table cellpadding = "0" cellPacing = "0"> <tbody> <tr> <td> <img src = "cid: {5}" style = "block;"/> </td </tbody> </table> </td; </td> <td valign="top"> <table cellpadding="0" cellpacing="0"> <tbody><tr> <td> <img src="cid:{6}" style="display: block;"/> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </td> </td> </tr> </tbody> </able> </td> </tr> </tbody> </able> </td> </tr> </tbody> </able> </td> </dr> <tr> <td bgcolor = "#ee4c50" style = "padding: 30px 30px 30px 30px 30px; <TBody> <tr> <td align = "right"> <Table cellpadding = "0" cellPacing = "0"> <tbody> <tr> <td style = "font-family: arial, sans-serif; font-ukuran: 12px; font-weight: bold;"> <img src = "cid: {font-weight: bold;"> <img src = "cid: cid: font-weight: bold;"> <img src = "cid: {" {"bold;"> <IMG SRC = " <td style="font-family: Arial, sans-serif; font-size: 12px; font-weight: bold;"> <img src="cid:{8}" style="display: block;"/> </td> </tbody></table> </td> </tbody></table> </td> </tr> </tbody></table> </body> </html> </xml-body> Akan ada beberapa pengidentifikasi dalam templat, seperti {i}, tabel atau lokasi yang dipesan untuk string, dan kemudian memformat pesan tersebut melalui MessageFormat, dan kemudian memasukkan string yang diformat ke lokasi yang sesuai dalam pola.
// Dapatkan templat xml string xml_path = servletActionContext.getSerVletContext (). GetRealPath ("/mailTemplate")+"/mymailTempleTe.xml"; String str = new readerxml (). Baca (xml_path); Objek [] obj = objek baru [] {mailForm.getName (), mailForm.getPhone (), mailform.gete_mail (), mailform.getContent (), "e_mail", "kiri", "kanan", "tw", "fb"}; // MessageFormat dapat memformat pesan tersebut dan kemudian memasukkan string yang diformat ke posisi yang sesuai dalam string pola tcontent = messageFormat.format (str, obj); Akhirnya, {i} dalam templat XML digantikan oleh OBJ [i] masing -masing.
3. Tulis Class ReaderXML untuk templat XML
Public Class ReaderXml {Public String Read (string path) {String str = null; str = pembaca (path); mengembalikan str; } Private String Reader (string path) {SaxReader Reader = SaxReader baru (); String str = null; coba {document d = reader.read (file baru (path)); Elemen e = d.getrooteLement (); Elemen html = e.element ("html"); str = html.asxml (); } catch (DocumentException e) {E.PrintStackTrace (); } return str; }} 4. Akhirnya, Mailaction Kelas Pengontrol kami
Gambar yang terkandung dalam format HTML adalah untuk mengatur pengidentifikasi unik dari file sumber daya yang sesuai menggunakan metode setContentId () dari kelas Mimebodypart. Artinya, protokol MIME memiliki bidang header konten-id dalam format struktur dan organisasi pesan, yang sesuai dengan CID: {i} pengidentifikasi dalam templat XML, seperti <img src = "cid: {8}"/> (Catatan: {i} akan diganti dengan string yang sesuai melalui Messagef
Mailaction kelas publik memperluas ActionSupport {private mailForm mailForm; public mailform getMailForm () {return mailform; } public void setMailForm (mailform mailform) {this.mailform = mailform; } // Tambahkan gambar tertanam private mimebodypart createMagemimeBodyPart (string imagename) melempar pesan pesan, tidak didukung oleh orang lain {fileDataSource fds = baru file ("/gambar". " Mimebodypart mbp = mimebodypart baru (); DataHandler DH = DataHandler baru (FDS); MBP.SetDataHandler (DH); // Atur pengidentifikasi unik dari file sumber daya yang sesuai, yaitu bidang header konten-ID dalam struktur dan format organisasi dari protokol MIME untuk pesan; MBP.SetHeader ("Content-ID", ImageName); mbp.setFileName (mimeutility.encodetext (fds.getName ())); mengembalikan MBP; } public string sendMail () {coba {httpservletRequest request = servletActionContext.getRequest (); String pwd = "******************"; // Email Kata sandi pengirim string mailfrom = "***************@163.com"; // NetEase's Email String wangyifrom = mailfrom.substring (0, mailfrom.indexof ('@')); // netease email nama pengguna string tu = "163.com"; // email name domain sendor string tto = "************@qq.com"; // Alamat email yang menerima string email ttitle = "Seseorang menghubungi Anda --- dari situs web pribadi Hu Junzheng"; // Menurut jalur fisiknya, dapatkan xml template string xml_path = servletactionContext.getSerVletContext (). GetRealPath ("/mailTemplate")+"/mymailTempleTe.xml"; String str = new readerxml (). Baca (xml_path); Objek [] obj = objek baru [] {mailForm.getName (), mailForm.getPhone (), mailform.gete_mail (), mailform.getContent (), "e_mail", "kiri", "kanan", "tw", "fb"}; // MessageFormat dapat memformat pesan tersebut dan kemudian memasukkan string yang diformat ke posisi yang sesuai dalam string pola tcontent = messageFormat.format (str, obj); Properti props = properti baru (); props.put ("mail.smtp.host", "smtp."+tu); // kotak surat smtp alamat server port props.put ("mail.smtp.auth", "true"); // Dengan cara ini, Anda dapat melewati sesi verifikasi s = session.getinstance (props); s.setDebug (true); Pesan mimemessage = mimemessage baru; // Atur waktu pengirim/resep/kirim untuk objek pesan InternetAddress dari; dari = new internetAddress (mailfrom); // kirim pesan kotak surat qq pengirim.setFrom (dari); InternetAddress to = new internetAddress (tto); // pesan email penerima. message.setsubject (tTitle); message.setsentDate (tanggal baru ()); // Atur konten untuk objek pesan bodypart mbp = mimebodypart baru (); // Buat objek bodypart baru mbp.setContent (tcontent, "text/html; charset = gb2312"); // atur konten dan format/metode encoding untuk objek bodypart // yang digunakan untuk menggabungkan teks dan gambar, " Mimemultipart ("terkait"); // Buat objek mimemultipart baru untuk menyimpan objek bodypart (pada kenyataannya, multipel) mm.addbodypart (mbp); // tambahkan bodypart ke objek mimemultipart (beberapa bodypart dapat ditambahkan) // add image mm.addbodypart (createmagememimeBody) // "") Emage M.Addbodypart (createMagememimeBody ("" EIGME) EIMINE (CreateMagemimeBody (createMagemimeBod) mm.addbodypart (createMagemimebodypart ("kiri")); mm.addbodypart (createMagemimebodypart ("kanan")); mm.addbodypart (createMagemimebodypart ("kanan")); mm.addbodypart (createMagemimebodypart ("tw")); mm.addbodypart (createMagemimebodypart ("fb")); message.setContent (mm); // gunakan mm sebagai konten dari pesan pesan pesan.savechanges (); Transport Transport = S.GetTransport ("SMTP"); transport.connect ("smtp."+Tu, wangyifrom, pwd); // wangyifrom di sini adalah transport akun netease pengirim. transport.close (); ActionContext.getContext (). GetSession (). Put ("Operations", "email itu berhasil dikirim, harap tunggu dengan sabar untuk balasan!"); } catch (Exception e) {System.out.println (e.toString ()); ActionContext.getContext (). GetSession (). Put ("kesalahan", e.tostring ()); mengembalikan "kesalahan"; } return "sendmail"; }}Di atas adalah semua tentang artikel ini, saya harap ini akan membantu untuk pembelajaran semua orang.