javamail 发送邮件 乱码处理

来源:互联网 发布:ubuntu 16.04配置jdk 编辑:程序博客网 时间:2024/05/19 19:12
 
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
 public void send(Map msg) {
  // 获取发件人邮件信息
  String tfrom = objToString(msg.get("email"));
  //收件人
  String tto = "";
  StringBuffer subject = new StringBuffer();
  subject.append("(お問い合わせ-" + objToString(msg.get("syurui")) + ")");
  subject.append(objToString(msg.get("kisyamei")));
  subject.append(objToString(msg.get("tantosyamei")));
  StringBuffer content = new StringBuffer();
  content.append(objToString(msg.get("toiawasei")));
  content.append("</br>");
  
  content.append("郵便番号:");
  content.append(objToString(msg.get("yubin1")));
  content.append("-");
  content.append(objToString(msg.get("yubin2")));
  content.append("</br>");
  content.append("住所:");
  content.append(objToString(msg.get("PrefName")));
  content.append(objToString(msg.get("jyusyo")));
  content.append("</br>");
  content.append("建物名:");
  content.append(objToString(msg.get("tatemonomei")));
  content.append("</br>");
  content.append("TEL:");
  content.append(objToString(msg.get("telphone")));
  content.append("</br>");
  content.append("FAX:");
  content.append(objToString(msg.get("fax")));
  try {
   Properties props = new Properties();
   // 存储发送邮件服务器的信息
   props.put("mail.smtp.host", "192.168.2.10");
   // 同时通过验证
   props.put("mail.smtp.auth", "true");
   // 根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
   Session s = Session.getInstance(props, null);
   // 设置调试标志,要查看经过邮件服务器邮件命令
   // s.setDebug(true);
   // 由邮件会话新建一个消息对象
   Message message = new MimeMessage(s);
   // 发件人的邮件地址
   Address from = new InternetAddress(tfrom);
   // 设置发件人
   message.setFrom(from);
   // 收件人的邮件地址
   Address to = new InternetAddress(tto);
   // 设置收件人,并设置其接收类型为TO
   message.setRecipient(Message.RecipientType.TO, to);
   // 设置主题
   message.setSubject(subject.toString());
   // 设置信件内容,发送一般文本格式的消息;
   // message.setText(content.toString());
   message.setContent(new String(content.toString()),"text/html;charset=UTF-8");
   // 设置发信时间
   message.setSentDate(new Date());
   // 存储邮件信息
   message.saveChanges();
   // message.set
   // 用于邮件的收发打操作。
   Transport transport = s.getTransport("smtp");
   String user = tfrom.substring(0, tfrom.indexOf("@"));
   // 以smtp方式登录邮箱
   transport.connect("192.168.2.10", user, "060109");
   // 发送邮件,其中第二个参数是所有已设好的收件人地址
   transport.sendMessage(message, message.getAllRecipients());
   transport.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 /**
  * 将对象转换字符串,用来处理request.getParameterMap()中的值
  * @param obj
  * @return
  */
 private String objToString(Object obj) {
  if (obj != null) {
    //判断对象是否是数组
   if (obj.getClass().isArray()) {
    String[] value = (String[]) obj;    
    return correctDisplay(value[0]);
   }     
   return correctDisplay(obj.toString());
  }
  return "";
 }
 
 /**
  * 乱码处理
  * @param temp
  * @return
  */
 private String correctDisplay(String temp){
  try {
   temp = new String(temp.getBytes("ISO-8859-1"),"UTF-8");
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  return temp;
 }
}

原创粉丝点击