`

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

分享到:
评论

相关推荐

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    ### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...

    javamail发送邮件 主题乱码解决

    第90行,setSubject("")

    james和javamail实现邮件收发(带发送附件)

    下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件会话**:首先,我们需要创建一个`Properties`对象,并设置SMTP服务器的相关参数,如主机名和端口号。然后,通过`Session.getInstance()`方法初始化一个邮件...

    jsp/servlet javamail 发送邮件 可发送多个附件

    2. **SMTP服务器配置**: 在使用JavaMail发送邮件时,首先需要配置SMTP服务器的相关信息,包括主机地址、端口号、用户名和密码。这些信息通常在应用的配置文件中定义,以便在程序运行时加载。 3. **MIME消息**: ...

    javamail发送html邮件

    JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和接收电子邮件。 #### 二、发送 HTML 格式的邮件 在实际应用中,经常需要...

    使用JavaMail发送复杂邮件源代码

    利用JavaMail进行邮件开发的发邮件的源代码,其中有四个例子,demo1/demo2是发送简单的邮件,demo3是发送一封html格式(正文为html格式,html代码中有一张图片)带附件的邮件。demo4是对demo3的补充,解决了附件的...

    javamail 邮件系统

    JavaMail邮件系统是一种基于Java平台的邮件发送和接收解决方案,它允许开发者通过编程方式与SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)等邮件服务器进行交互。在JavaMail中,...

    JavaMail 发送邮件

    - **编码问题**:处理好邮件中的特殊字符和非 ASCII 字符,防止乱码。 通过 JavaMail,开发者可以轻松地在 Java 应用中集成邮件功能,无论是简单的文本邮件还是复杂的多部分邮件,都可以轻松应对。在实际应用中,...

    javamail收发邮件(带附件,正文带图).docx

    JavaMail API 是 Java 平台上广泛使用的邮件处理库之一,它允许开发人员通过简单的 API 调用来发送和接收电子邮件,包括支持附件和内嵌图片等功能。 #### 二、邮件的基本结构 邮件由邮件头和邮件体两部分组成: -...

    JavaMail结合JSP实现中文邮件收发系统.rar

    JavaMail结合JSP实现中文邮件收发系统是一个典型的Web应用开发案例,主要涉及Java后端技术和JSP(JavaServer Pages)前端技术,用于构建能够处理中文字符的电子邮件发送与接收功能。这一系统的实现依赖于JavaMail ...

    javaMail.zip

    使用JavaMail发送邮件的一般步骤如下: 1. **初始化 Session**:首先,你需要创建一个 `Properties` 对象,并设置SMTP服务器的相关属性,如主机名(host)、端口号(port),如果是SSL或TLS安全连接,还需要开启...

    Java自带的Java-mail框架 163 邮件发送,支持多附件,没中文乱码

    在本案例中,我们将关注如何使用JavaMail发送带有多个附件且不出现中文乱码的邮件,特别是通过163邮箱服务提供商。 1. **JavaMail API基础**: JavaMail API提供了一系列的类和接口,如`Session`,`Message`,`...

    JavaMail开发原理简介PPT

    JavaMail 是一种在Java应用程序中实现电子邮件发送和接收的API,它允许开发者通过标准的邮件协议(如SMTP、POP3和IMAP)与邮件服务器进行交互。本PPT旨在介绍JavaMail的开发原理,虽然没有具体的代码示例,但涵盖了...

    Javamail开发

    JavaMail是Java编程语言中用于处理电子邮件的API,它提供了创建、发送和接收电子邮件的全面功能。本课程针对Java开发者,旨在教会学员如何利用JavaMail进行邮件开发,以实现各种常见的WEB应用邮件功能。 首先,...

    传智播客张孝祥Java邮件开发学习笔记

    5. 编写JavaMail发送邮件的程序 使用JavaMail API编写一个简单的邮件发送程序,需要利用JavaMail提供的类和接口。实现邮件发送功能需要设置邮件服务器的SMTP属性,编写发送邮件的代码,以及使用Authenticator类来...

    简单的javamail例子 (源码)

    - **邮件发送逻辑**:使用 JavaMail API 发送邮件。 ```java // 设置邮件服务器属性 Properties props = new Properties(); props.put("mail.smtp.host", "smtp.21cn.com"); // 创建会话对象 Session ...

    spring整合freemarker发送邮件例子

    这个服务能够发送HTML格式的邮件,其中包含内嵌的图片,并且能够处理附件,同时解决字符编码可能导致的乱码问题。以下是详细的知识点讲解: 1. **Spring Framework**:Spring 是一个广泛使用的 Java 应用开发框架,...

    javamail资料

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。它提供了全面的 API,使得开发者可以处理 SMTP、POP3 和 IMAP 协议,实现了邮件服务的各种功能,包括附件、HTML 内容、多部分消息...

    利用Java发送邮件(含附件)的例子

    它使用`MimeMessage`对象来表示邮件,`Session`对象来处理邮件会话,以及`Properties`对象来存储邮件发送的配置信息。`Multipart`对象用于组合邮件的各个部分,包括正文和附件。`EmailHandle`类还包含了一个`...

Global site tag (gtag.js) - Google Analytics