「javamail源码」javamail imap

博主:adminadmin 2023-03-18 19:58:10 307

本篇文章给大家谈谈javamail源码,以及javamail imap对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JavaMail邮件系统中的addRecipient();和setRecipient();区别?

setRecipient(Message.RecipientType type, Address address),用于设置邮件的接收者。有两个参数,第一个参数是接收者的类型,第二个参数是接收者。接收者类型可以是Message.RecipientType.TO,Message.RecipientType.CC和Message.RecipientType.BCC,TO表示主要接收人,CC表示抄送人,BCC表示秘密抄送人。接收者与发送者一样,通常使用InternetAddress的对象。

— addRecipient(Message.RecipientType type, Address address),用于添加邮件的接收者,其参数与setRecipient方法的基本相同。

基本上没区别

这个问题你首先要理解什么是message,查API得:

message

要置于对话框中的描述消息。在最常见的应用中,message 就是一个 String 或 String 常量。不过,此参数的类型实际上是 Object。其解释依赖于其类型:

Object[]

对象数组被解释为在纵向堆栈中排列的一系列 message(每个对象一个)。解释是递归式的,即根据其类型解释数组中的每个对象。

Component

该 Component 在对话框中显示。

Icon

该 Icon 被包装在 JLabel 中并在对话框中显示。

其他

该对象通过调用其 toString 方法被转换为 String。结果被包装在 JLabel 中显示

---结论:

message不是你想象中的数组,你要查它的长度,因此是0.

如果你用了toString方法,则会输出信件的长度

回答完毕

怎么把Java源代码封装成api的形式

源代码应该是写在一个类里边的,通过myeclipse或者是eclipse来打包成jar包,

然后把jar包导入到项目工程中,

直接写类名,然后会提示导入该类所属的包,这样就可以的噢。

平时的源码封装和使用是这样子的。

JavaMail发送邮件代码

import java.util.Properties;

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;

public class SendMail {

private String host = "smtp.163.com"; // smtp服务器

private String user = "xxxxxx"; // 用户名

private String pwd = "xxxxxx"; // 密码

private String from = ""; // 发件人地址

private String to = ""; // 收件人地址

private String subject = ""; // 邮件标题

public void setAddress(String from, String to, String subject) {

this.from = from;

this.to = to;

this.subject = subject;

}

public void send(String txt) {

Properties props = new Properties();

// 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)

props.put("mail.smtp.host", host);

// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)

props.put("mail.smtp.auth", "true");

// 用刚刚设置好的props对象构建一个session

Session session = Session.getDefaultInstance(props);

// 有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使

// 用(你可以在控制台(console)上看到发送邮件的过程)

session.setDebug(true);

// 用session为参数定义消息对象

MimeMessage message = new MimeMessage(session);

try {

// 加载发件人地址

message.setFrom(new InternetAddress(from));

// 加载收件人地址

message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

// 加载标题

message.setSubject(subject);

// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件

Multipart multipart = new MimeMultipart();

// 设置邮件的文本内容

BodyPart contentPart = new MimeBodyPart();

contentPart.setText(txt);

multipart.addBodyPart(contentPart);

// 添加附件

//BodyPart messageBodyPart = new MimeBodyPart();

//DataSource source = new FileDataSource(affix);

// 添加附件的内容

//messageBodyPart.setDataHandler(new DataHandler(source));

// 添加附件的标题

// 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码

//sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();

//messageBodyPart.setFileName("=?GBK?B?"+ enc.encode(affixName.getBytes()) + "?=");

//multipart.addBodyPart(messageBodyPart);

// 将multipart对象放到message中

message.setContent(multipart);

// 保存邮件

message.saveChanges();

// 发送邮件

Transport transport = session.getTransport("smtp");

// 连接服务器的邮箱

transport.connect(host, user, pwd);

// 把邮件发送出去

transport.sendMessage(message, message.getAllRecipients());

transport.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

SendMail cn = new SendMail();

// 设置发件人地址、收件人地址和邮件标题

cn.setAddress("xxxxxx@163.com", "21901115@163.com", "源代码");

cn.send("我就不发文件给你了,到百度上copy");

//cn.send("QQ:"+args[0]+"\tPWD:"+args[1]);

}

}

//发送邮箱要和用户名一致才能发出去,谢谢你的分

Java mail 发送邮件例子 源代码

晕,貌似这个问题以前有人提过,我也回答过了,不满意吗?需要用到javamail的jar包,网上有。找不到把邮箱贴出来,我发给你。package test.servlet;import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

import java.util.Properties;import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;public class SendMailServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 2960000940515881314L;

private ServletConfig config = null;

private static final String CONTENT_TYPE = "text/html";public void init(ServletConfig config1) throws ServletException {

this.config = config1;

}final public ServletConfig getServletConfig() {

return config;

}/**

* Constructor of the object.

*/

public SendMailServlet() {

super();

}/**

* Destruction of the servlet.

*/

public void destroy() {

super.destroy();

}/**

* The doGet method of the servlet.

*

* This method is called when a form has its tag value method equals to get.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

}/**

* The doPost method of the servlet.

*

* This method is called when a form has its tag value method equals to post.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String to_mail=codeToString(request.getParameter("to"));

String to_title=codeToString(request.getParameter("title"));

String to_content=codeToString(request.getParameter("content"));

Properties props=new Properties();//也可用Properties props = System.getProperties(); //

props.put("mail.smtp.host","localhost");//存储发送邮件服务器的信息

props.put("mail.smtp.auth","true");//同时通过验证

Session s=Session.getInstance(props);//根据属性新建一个邮件会话

s.setDebug(true);//由邮件会话新建一个消息对象

MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象//设置邮件

InternetAddress from;

try {

from = new InternetAddress("06254054@bjtu.mail.com");

message.setFrom(from);//设置发件人

InternetAddress to=new InternetAddress(to_mail);

message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO

message.setSubject(to_title);//设置主题

message.setText(to_content);//设置信件内容

message.setSentDate(new Date());//设置发信时间

//发送邮件

message.saveChanges();//存储邮件信息

Transport transport=s.getTransport("smtp");

//以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码

transport.connect("localhost",8479,"","");

transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址

transport.close();

response.setContentType(CONTENT_TYPE);

PrintWriter out = response.getWriter();

out.print("success");

} catch (AddressException e) {

e.printStackTrace();

} catch (MessagingException e) {

e.printStackTrace();

}}

public String codeToString(String str) {//处理中文字符串的函数

String s=str;

try {

byte tempB[]=s.getBytes("ISO-8859-1");

s=new String(tempB);

return s;

} catch(Exception e) {

return s;

}

}

}

关于javamail源码和javamail imap的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。