国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

Spring Boot整合郵件發(fā)送與注意事項

2024-07-14 08:41:29
字體:
供稿:網(wǎng)友

什么是Spring Boot

Spring Boot是一個框架,其設(shè)計目的是簡化Spring應(yīng)用的初始搭建配置以及開發(fā)過程。該框架使用了特定的配置方式,從而使開發(fā)人員不在需要定義樣板化的配置。

Spring Boot的好處

1、配置簡單;

2、編碼簡單;

3、部署簡單;

4、監(jiān)控簡單;

概述

Spring Boot下面整合了郵件服務(wù)器,使用Spring Boot能夠輕松實現(xiàn)郵件發(fā)送;整理下最近使用Spring Boot發(fā)送郵件和注意事項;

Maven包依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>

Spring Boot的配置

spring.mail.host=smtp.servie.comspring.mail.username=用戶名 //發(fā)送方的郵箱spring.mail.password=密碼 //對于qq郵箱而言 密碼指的就是發(fā)送方的授權(quán)碼spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.enable=false #是否用啟用加密傳送的協(xié)議驗證項spring.mail.properties.mail.smtp.starttls.required=fasle #是否用啟用加密傳送的協(xié)議驗證項#注意:在spring.mail.password處的值是需要在郵箱設(shè)置里面生成的授權(quán)碼,這個不是真實的密碼。

Spring 代碼實現(xiàn)

package com.dbgo.webservicedemo.email;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.stereotype.Component;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import java.io.File;@Component("emailtool")public class EmailTool { @Autowired private JavaMailSender javaMailSender; public void sendSimpleMail(){  MimeMessage message = null;  try {   message = javaMailSender.createMimeMessage();   MimeMessageHelper helper = new MimeMessageHelper(message, true);   helper.setFrom("jiajinhao@dbgo.cn");   helper.setTo("653484166@qq.com");   helper.setSubject("標(biāo)題:發(fā)送Html內(nèi)容");   StringBuffer sb = new StringBuffer();   sb.append("<h1>大標(biāo)題-h1</h1>")     .append("<p style='color:#F00'>紅色字</p>")     .append("<p style='text-align:right'>右對齊</p>");   helper.setText(sb.toString(), true);   FileSystemResource fileSystemResource=new FileSystemResource(new File("D:/76678.pdf"))   helper.addAttachment("電子發(fā)票",fileSystemResource);   javaMailSender.send(message);  } catch (MessagingException e) {   e.printStackTrace();  } }}

非Spring Boot下發(fā)送電子郵件:

Maven包依賴

<dependencies>  <dependency>   <groupId>com.sun.mail</groupId>   <artifactId>javax.mail</artifactId>   <version>1.5.2</version>  </dependency> </dependencies>

DEMO1代碼事例

package com.justin.framework.core.utils.email;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.util.Date;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.Address;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.Message.RecipientType;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/** * 使用SMTP協(xié)議發(fā)送電子郵件 */public class sendEmailCode { // 郵件發(fā)送協(xié)議 private final static String PROTOCOL = "smtp"; // SMTP郵件服務(wù)器 private final static String HOST = "mail.tdb.com"; // SMTP郵件服務(wù)器默認(rèn)端口 private final static String PORT = "25"; // 是否要求身份認(rèn)證 private final static String IS_AUTH = "true"; // 是否啟用調(diào)試模式(啟用調(diào)試模式可打印客戶端與服務(wù)器交互過程時一問一答的響應(yīng)消息) private final static String IS_ENABLED_DEBUG_MOD = "true"; // 發(fā)件人 private static String from = "tdbjrcrm@tdb.com"; // 收件人 private static String to = "db_yangruirui@tdbcwgs.com"; private static String senduserName="tdbjrcrm@tdb.com"; private static String senduserPwd="New*2016"; // 初始化連接郵件服務(wù)器的會話信息 private static Properties props = null; static {  props = new Properties();  props.setProperty("mail.enable", "true");  props.setProperty("mail.transport.protocol", PROTOCOL);  props.setProperty("mail.smtp.host", HOST);  props.setProperty("mail.smtp.port", PORT);  props.setProperty("mail.smtp.auth", IS_AUTH);//視情況而定  props.setProperty("mail.debug",IS_ENABLED_DEBUG_MOD); } /**  * 發(fā)送簡單的文本郵件  */ public static boolean sendTextEmail(String to,int code) throws Exception {  try {   // 創(chuàng)建Session實例對象   Session session1 = Session.getDefaultInstance(props);   // 創(chuàng)建MimeMessage實例對象   MimeMessage message = new MimeMessage(session1);   // 設(shè)置發(fā)件人   message.setFrom(new InternetAddress(from));   // 設(shè)置郵件主題   message.setSubject("內(nèi)燃機(jī)注冊驗證碼");   // 設(shè)置收件人   message.setRecipient(RecipientType.TO, new InternetAddress(to));   // 設(shè)置發(fā)送時間   message.setSentDate(new Date());   // 設(shè)置純文本內(nèi)容為郵件正文   message.setText("您的驗證碼是:"+code+"!驗證碼有效期是10分鐘,過期后請重新獲取!"     + "中國內(nèi)燃機(jī)學(xué)會");   // 保存并生成最終的郵件內(nèi)容   message.saveChanges();   // 獲得Transport實例對象   Transport transport = session1.getTransport();   // 打開連接   transport.connect("meijiajiang2016", "");   // 將message對象傳遞給transport對象,將郵件發(fā)送出去   transport.sendMessage(message, message.getAllRecipients());   // 關(guān)閉連接   transport.close();   return true;  } catch (Exception e) {   e.printStackTrace();   return false;  } } public static void main(String[] args) throws Exception {  sendHtmlEmail("db_yangruirui@tdbcwgs.com", 88888); } /**  * 發(fā)送簡單的html郵件  */ public static boolean sendHtmlEmail(String to,int code) throws Exception {  // 創(chuàng)建Session實例對象  Session session1 = Session.getInstance(props, new MyAuthenticator());  // 創(chuàng)建MimeMessage實例對象  MimeMessage message = new MimeMessage(session1);  // 設(shè)置郵件主題  message.setSubject("內(nèi)燃機(jī)注冊");  // 設(shè)置發(fā)送人  message.setFrom(new InternetAddress(from));  // 設(shè)置發(fā)送時間  message.setSentDate(new Date());  // 設(shè)置收件人  message.setRecipients(RecipientType.TO, InternetAddress.parse(to));  // 設(shè)置html內(nèi)容為郵件正文,指定MIME類型為text/html類型,并指定字符編碼為gbk  message.setContent("<div style='width: 600px;margin: 0 auto'><h3 style='color:#003E64; text-align:center; '>內(nèi)燃機(jī)注冊驗證碼</h3><p style=''>尊敬的用戶您好:</p><p style='text-indent: 2em'>您在注冊內(nèi)燃機(jī)賬號,此次的驗證碼是:"+code+",有效期10分鐘!如果過期請重新獲取。</p><p style='text-align: right; color:#003E64; font-size: 20px;'>中國內(nèi)燃機(jī)學(xué)會</p></div>","text/html;charset=utf-8");  //設(shè)置自定義發(fā)件人昵稱  String nick="";  try {   nick=javax.mail.internet.MimeUtility.encodeText("中國內(nèi)燃機(jī)學(xué)會");  } catch (UnsupportedEncodingException e) {   e.printStackTrace();  }  message.setFrom(new InternetAddress(nick+" <"+from+">"));  // 保存并生成最終的郵件內(nèi)容  message.saveChanges();  // 發(fā)送郵件  try {   Transport.send(message);   return true;  } catch (Exception e) {   e.printStackTrace();   return false;  } } /**  * 發(fā)送帶內(nèi)嵌圖片的HTML郵件  */ public static void sendHtmlWithInnerImageEmail() throws MessagingException {  // 創(chuàng)建Session實例對象  Session session = Session.getDefaultInstance(props, new MyAuthenticator());  // 創(chuàng)建郵件內(nèi)容  MimeMessage message = new MimeMessage(session);  // 郵件主題,并指定編碼格式  message.setSubject("帶內(nèi)嵌圖片的HTML郵件", "utf-8");  // 發(fā)件人  message.setFrom(new InternetAddress(from));  // 收件人  message.setRecipients(RecipientType.TO, InternetAddress.parse(to));  // 抄送  message.setRecipient(RecipientType.CC, new InternetAddress("java_test@sohu.com"));  // 密送 (不會在郵件收件人名單中顯示出來)  message.setRecipient(RecipientType.BCC, new InternetAddress("417067629@qq.com"));  // 發(fā)送時間  message.setSentDate(new Date());  // 創(chuàng)建一個MIME子類型為“related”的MimeMultipart對象  MimeMultipart mp = new MimeMultipart("related");  // 創(chuàng)建一個表示正文的MimeBodyPart對象,并將它加入到前面創(chuàng)建的MimeMultipart對象中  MimeBodyPart htmlPart = new MimeBodyPart();  mp.addBodyPart(htmlPart);  // 創(chuàng)建一個表示圖片資源的MimeBodyPart對象,將將它加入到前面創(chuàng)建的MimeMultipart對象中  MimeBodyPart imagePart = new MimeBodyPart();  mp.addBodyPart(imagePart);  // 將MimeMultipart對象設(shè)置為整個郵件的內(nèi)容  message.setContent(mp);  // 設(shè)置內(nèi)嵌圖片郵件體  DataSource ds = new FileDataSource(new File("resource/firefoxlogo.png"));  DataHandler dh = new DataHandler(ds);  imagePart.setDataHandler(dh);  imagePart.setContentID("firefoxlogo.png"); // 設(shè)置內(nèi)容編號,用于其它郵件體引用  // 創(chuàng)建一個MIME子類型為"alternative"的MimeMultipart對象,并作為前面創(chuàng)建的htmlPart對象的郵件內(nèi)容  MimeMultipart htmlMultipart = new MimeMultipart("alternative");  // 創(chuàng)建一個表示html正文的MimeBodyPart對象  MimeBodyPart htmlBodypart = new MimeBodyPart();  // 其中cid=androidlogo.gif是引用郵件內(nèi)部的圖片,即imagePart.setContentID("androidlogo.gif");方法所保存的圖片  htmlBodypart.setContent("<span style='color:red;'>這是帶內(nèi)嵌圖片的HTML郵件哦!!!<img src=/"cid:firefoxlogo.png/" /></span>","text/html;charset=utf-8");  htmlMultipart.addBodyPart(htmlBodypart);  htmlPart.setContent(htmlMultipart);  // 保存并生成最終的郵件內(nèi)容  message.saveChanges();  // 發(fā)送郵件  Transport.send(message); } /**  * 發(fā)送帶內(nèi)嵌圖片、附件、多收件人(顯示郵箱姓名)、郵件優(yōu)先級、閱讀回執(zhí)的完整的HTML郵件  */ public static void sendMultipleEmail() throws Exception {  String charset = "utf-8"; // 指定中文編碼格式  // 創(chuàng)建Session實例對象  Session session = Session.getInstance(props,new MyAuthenticator());  // 創(chuàng)建MimeMessage實例對象  MimeMessage message = new MimeMessage(session);  // 設(shè)置主題  message.setSubject("使用JavaMail發(fā)送混合組合類型的郵件測試");  // 設(shè)置發(fā)送人  message.setFrom(new InternetAddress(from,"新浪測試郵箱",charset));  // 設(shè)置收件人  message.setRecipients(RecipientType.TO,    new Address[] {      // 參數(shù)1:郵箱地址,參數(shù)2:姓名(在客戶端收件只顯示姓名,而不顯示郵件地址),參數(shù)3:姓名中文字符串編碼      new InternetAddress("java_test@sohu.com", "張三_sohu", charset),      new InternetAddress("xyang0917@163.com", "李四_163", charset),    }  );  // 設(shè)置抄送  message.setRecipient(RecipientType.CC, new InternetAddress("xyang0917@gmail.com","王五_gmail",charset));  // 設(shè)置密送  message.setRecipient(RecipientType.BCC, new InternetAddress("xyang0917@qq.com", "趙六_QQ", charset));  // 設(shè)置發(fā)送時間  message.setSentDate(new Date());  // 設(shè)置回復(fù)人(收件人回復(fù)此郵件時,默認(rèn)收件人)  message.setReplyTo(InternetAddress.parse("/"" + MimeUtility.encodeText("田七") + "/" <417067629@qq.com>"));  // 設(shè)置優(yōu)先級(1:緊急 3:普通 5:低)  message.setHeader("X-Priority", "1");  // 要求閱讀回執(zhí)(收件人閱讀郵件時會提示回復(fù)發(fā)件人,表明郵件已收到,并已閱讀)  message.setHeader("Disposition-Notification-To", from);  // 創(chuàng)建一個MIME子類型為"mixed"的MimeMultipart對象,表示這是一封混合組合類型的郵件  MimeMultipart mailContent = new MimeMultipart("mixed");  message.setContent(mailContent);  // 附件  MimeBodyPart attach1 = new MimeBodyPart();  MimeBodyPart attach2 = new MimeBodyPart();  // 內(nèi)容  MimeBodyPart mailBody = new MimeBodyPart();  // 將附件和內(nèi)容添加到郵件當(dāng)中  mailContent.addBodyPart(attach1);  mailContent.addBodyPart(attach2);  mailContent.addBodyPart(mailBody);  // 附件1(利用jaf框架讀取數(shù)據(jù)源生成郵件體)  DataSource ds1 = new FileDataSource("resource/Earth.bmp");  DataHandler dh1 = new DataHandler(ds1);  attach1.setFileName(MimeUtility.encodeText("Earth.bmp"));  attach1.setDataHandler(dh1);  // 附件2  DataSource ds2 = new FileDataSource("resource/如何學(xué)好C語言.txt");  DataHandler dh2 = new DataHandler(ds2);  attach2.setDataHandler(dh2);  attach2.setFileName(MimeUtility.encodeText("如何學(xué)好C語言.txt"));  // 郵件正文(內(nèi)嵌圖片+html文本)  MimeMultipart body = new MimeMultipart("related"); //郵件正文也是一個組合體,需要指明組合關(guān)系  mailBody.setContent(body);  // 郵件正文由html和圖片構(gòu)成  MimeBodyPart imgPart = new MimeBodyPart();  MimeBodyPart htmlPart = new MimeBodyPart();  body.addBodyPart(imgPart);  body.addBodyPart(htmlPart);  // 正文圖片  DataSource ds3 = new FileDataSource("resource/firefoxlogo.png");  DataHandler dh3 = new DataHandler(ds3);  imgPart.setDataHandler(dh3);  imgPart.setContentID("firefoxlogo.png");  // html郵件內(nèi)容  MimeMultipart htmlMultipart = new MimeMultipart("alternative");  htmlPart.setContent(htmlMultipart);  MimeBodyPart htmlContent = new MimeBodyPart();  htmlContent.setContent(    "<span style='color:red'>這是我自己用java mail發(fā)送的郵件哦!" +      "<img src='cid:firefoxlogo.png' /></span>"    , "text/html;charset=gbk");  htmlMultipart.addBodyPart(htmlContent);  // 保存郵件內(nèi)容修改  message.saveChanges();  /*File eml = buildEmlFile(message);  sendMailForEml(eml);*/  // 發(fā)送郵件  Transport.send(message); } /**  * 將郵件內(nèi)容生成eml文件  * @param message 郵件內(nèi)容  */ public static File buildEmlFile(Message message) throws MessagingException, FileNotFoundException, IOException {  File file = new File("c://" + MimeUtility.decodeText(message.getSubject())+".eml");  message.writeTo(new FileOutputStream(file));  return file; } /**  * 發(fā)送本地已經(jīng)生成好的email文件  */ public static void sendMailForEml(File eml) throws Exception {  // 獲得郵件會話  Session session = Session.getInstance(props,new MyAuthenticator());  // 獲得郵件內(nèi)容,即發(fā)生前生成的eml文件  InputStream is = new FileInputStream(eml);  MimeMessage message = new MimeMessage(session,is);  //發(fā)送郵件  Transport.send(message); } /**  * 向郵件服務(wù)器提交認(rèn)證信息  */ static class MyAuthenticator extends Authenticator {  private String username = "";  private String password = "";  public MyAuthenticator() {   super();   this.password=senduserPwd;   this.username=senduserName;  }  public MyAuthenticator(String username, String password) {   super();   this.username = username;   this.password = password;  }  @Override  protected PasswordAuthentication getPasswordAuthentication() {   return new PasswordAuthentication(username, password);  } }}

DEMO2代碼事例:

package com.justin.framework.core.utils.email;import java.util.HashSet;import java.util.Properties;import java.util.Set;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;public class MailManagerUtils { //發(fā)送郵件 public static boolean sendMail(Email email) {  String subject = email.getSubject();  String content = email.getContent();  String[] recievers = email.getRecievers();  String[] copyto = email.getCopyto();  String attbody = email.getAttbody();  String[] attbodys = email.getAttbodys();  if(recievers == null || recievers.length <=0) {   return false;  }  try {   Properties props =new Properties();   props.setProperty("mail.enable", "true");   props.setProperty("mail.protocal", "smtp");   props.setProperty("mail.smtp.auth", "true");   props.setProperty("mail.user", "tdbjrcrm@tdb.com");   props.setProperty("mail.pass", "New***");   props.setProperty("mail.smtp.host","mail.tdb.com");   props.setProperty("mail.smtp.from","tdbjrcrm@tdb.com");   props.setProperty("mail.smtp.fromname","tdbVC");   // 創(chuàng)建一個程序與郵件服務(wù)器的通信   Session mailConnection = Session.getInstance(props, null);   Message msg = new MimeMessage(mailConnection);   // 設(shè)置發(fā)送人和接受人   Address sender = new InternetAddress(props.getProperty("mail.smtp.from"));   // 多個接收人   msg.setFrom(sender);   Set<InternetAddress> toUserSet = new HashSet<InternetAddress>();   // 郵箱有效性較驗   for (int i = 0; i < recievers.length; i++) {    if (recievers[i].trim().matches("^//w+([-+.]//w+)*@//w+([-.]//w+)+$")) {     toUserSet.add(new InternetAddress(recievers[i].trim()));    }   }   msg.setRecipients(Message.RecipientType.TO, toUserSet.toArray(new InternetAddress[0]));   // 設(shè)置抄送   if (copyto != null) {    Set<InternetAddress> copyToUserSet = new HashSet<InternetAddress>();    // 郵箱有效性較驗    for (int i = 0; i < copyto.length; i++) {     if (copyto[i].trim().matches("^//w+([-+.]//w+)*@//w+([-.]//w+)+$")) {      copyToUserSet.add(new InternetAddress(copyto[i].trim()));     }    }    // msg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));    msg.setRecipients(Message.RecipientType.CC, copyToUserSet.toArray(new InternetAddress[0]));   }   // 設(shè)置郵件主題   msg.setSubject(MimeUtility.encodeText(subject, "UTF-8", "B")); // 中文亂碼問題   // 設(shè)置郵件內(nèi)容   BodyPart messageBodyPart = new MimeBodyPart();   messageBodyPart.setContent(content, "text/html; charset=UTF-8"); // 中文   Multipart multipart = new MimeMultipart();   multipart.addBodyPart(messageBodyPart);   msg.setContent(multipart);   /********************** 發(fā)送附件 ************************/   if (attbody != null) {    String[] filePath = attbody.split(";");    for (String filepath : filePath) {     //設(shè)置信件的附件(用本地機(jī)上的文件作為附件)     BodyPart mdp = new MimeBodyPart();     FileDataSource fds = new FileDataSource(filepath);     DataHandler dh = new DataHandler(fds);     mdp.setFileName(MimeUtility.encodeText(fds.getName()));     mdp.setDataHandler(dh);     multipart.addBodyPart(mdp);    }    //把mtp作為消息對象的內(nèi)容    msg.setContent(multipart);   };   if (attbodys != null) {    for (String filepath : attbodys) {     //設(shè)置信件的附件(用本地機(jī)上的文件作為附件)     BodyPart mdp = new MimeBodyPart();     FileDataSource fds = new FileDataSource(filepath);     DataHandler dh = new DataHandler(fds);     mdp.setFileName(MimeUtility.encodeText(fds.getName()));     mdp.setDataHandler(dh);     multipart.addBodyPart(mdp);    }    //把mtp作為消息對象的內(nèi)容    msg.setContent(multipart);   }   ;   /********************** 發(fā)送附件結(jié)束 ************************/   // 先進(jìn)行存儲郵件   msg.saveChanges();   System.out.println("正在發(fā)送郵件....");   Transport trans = mailConnection.getTransport(props.getProperty("mail.protocal"));   // 郵件服務(wù)器名,用戶名,密碼   trans.connect(props.getProperty("mail.smtp.host"), props.getProperty("mail.user"), props.getProperty("mail.pass"));   trans.sendMessage(msg, msg.getAllRecipients());   System.out.println("發(fā)送郵件成功!");   // 關(guān)閉通道   if (trans.isConnected()) {    trans.close();   }   return true;  } catch (Exception e) {   System.err.println("郵件發(fā)送失敗!" + e);   return false;  } finally {  } } // 發(fā)信人,收信人,回執(zhí)人郵件中有中文處理亂碼,res為獲取的地址 // http默認(rèn)的編碼方式為ISO8859_1 // 對含有中文的發(fā)送地址,使用MimeUtility.decodeTex方法 // 對其他則把地址從ISO8859_1編碼轉(zhuǎn)換成gbk編碼 public static String getChineseFrom(String res) {  String from = res;  try {   if (from.startsWith("=?GB") || from.startsWith("=?gb") || from.startsWith("=?UTF")) {    from = MimeUtility.decodeText(from);   } else {    from = new String(from.getBytes("ISO8859_1"), "GBK");   }  } catch (Exception e) {   e.printStackTrace();  }  return from; } // 轉(zhuǎn)換為GBK編碼 public static String toChinese(String strvalue) {  try {   if (strvalue == null)    return null;   else {    strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");    return strvalue;   }  } catch (Exception e) {   return null;  } } public static void main(String[] args) {  Email email=new Email();  email.setRecievers(new String[]{"db_yangruirui@tdbcwgs.com"});  email.setSubject("TEST測件");  email.setContent("TEST測試");  sendMail(email); }}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 奉新县| 济宁市| 花莲市| 湖口县| 呼图壁县| 宝兴县| 博客| 德化县| 察隅县| 西乡县| 阿城市| 惠东县| 台中县| 辽宁省| 横峰县| 安龙县| 惠水县| 化隆| 蛟河市| 浠水县| 湟源县| 皋兰县| 霍山县| 吉林市| 凌云县| 瑞安市| 靖边县| 萍乡市| 大连市| 龙海市| 互助| 广丰县| 富民县| 高雄县| 太谷县| 盐城市| 泾源县| 鹤庆县| 泰安市| 呼图壁县| 济阳县|