javamail 发送邮件 乱码处理

 
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;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值