/**
* Created by IntelliJ IDEA.
* User: tsaowe
* Date: 12-3-6
* Time: 上午9:15
*/
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class MailSender {
private String host;
private Address from;
private String username;
private String password;
private Address[] to;
private String subject;
private String message;
public MailSender() {
/* todo 这儿是发送邮件的服务器 */
this.host = "smtp.????.???";
try {
/* todo 这儿填写发给别人的邮件地址,就是自己邮箱地址*/
this.from = new InternetAddress("xxxx@xx.com");
} catch (AddressException e) {
e.printStackTrace();
}
this.username = "xxxx@xx.com"; //登录名,和上面邮件地址一致
this.password = "xxxxxxxxxx"; //登录密码
this.subject = "";
this.message = "";
}
public MailSender(String host, String from, String username, String password){
this.host = host;
try {
this.from = new InternetAddress(from);
} catch (AddressException e) {
e.printStackTrace();
}
this.username = username;
this.password = password;
this.subject = "";
this.message = "";
}
public void addAddress(String to) {
int length = 0;
if(this.to == null || this.to.length == 0){
length = 0;
}else{
length = this.to.length;
}
Address[] oldTo = this.to;
this.to = new InternetAddress[length + 1];
try {
this.to[0] = new InternetAddress(to);
} catch (AddressException e) {
e.printStackTrace();
}
for(int i = 0; i<length; i++) {
assert oldTo != null;
this.to[i+1] = oldTo[i];
}
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return this.message;
}
public boolean sendMail() {
Properties props = new Properties();
props.put("mail.smtp.host", this.host);
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, null);
try {
Message msg = new MimeMessage(session);
msg.setFrom(this.from);
Address[] address = this.to;
msg.setRecipients(Message.RecipientType.TO, address);
((MimeMessage)msg).setSubject(this.subject,"utf-8");
msg.setSentDate(new Date());
BodyPart mdp=new MimeBodyPart();
mdp.setContent(this.message,"text/html;charset=utf-8");
Multipart mm=new MimeMultipart();
mm.addBodyPart(mdp);
msg.setContent(mm);
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
System.out.println("Send mail: "+ msg.getSentDate());
return true;
} catch (MessagingException mex) {
System.out.println("\n--Exception");
System.out.println();
Exception ex = mex;
do {
if (ex instanceof SendFailedException) {
SendFailedException sfex = (SendFailedException)ex;
Address[] invalid = sfex.getInvalidAddresses();
if (invalid != null) {
System.out.println(" ** Invalid Addresses");
for (Address anInvalid : invalid) System.out.println(" " + anInvalid);
}
Address[] validUnsent = sfex.getValidUnsentAddresses();
if (validUnsent != null) {
System.out.println(" ** ValidUnsent Addresses");
for (Address aValidUnsent : validUnsent) System.out.println(" " + aValidUnsent);
}
Address[] validSent = sfex.getValidSentAddresses();
if (validSent != null) {
System.out.println(" ** ValidSent Addresses");
for (Address aValidSent : validSent) System.out.println(" " + aValidSent);
}
}
System.out.println();
if (ex instanceof MessagingException)
ex = ((MessagingException)ex).getNextException();
else
ex = null;
} while (ex != null);
return false;
}
}
public static void main(String[] args) {
MailSender mailSenderInstance = new MailSender();
mailSenderInstance.addAddress("xxxx@xxx.xxx");
mailSenderInstance.setSubject("Test Mail");
mailSenderInstance.setMessage("Test Mail");
mailSenderInstance.sendMail();
}
}
分享到:
相关推荐
本教程将详细讲解一个已经封装好的Java邮件发送工具类——`EasyEmailUtil`,它使得邮件发送变得简单易行,无需繁琐的配置,只需一键调用即可完成。 首先,`EasyEmailUtil`类通常会包含以下几个核心功能: 1. **...
POI库提供了丰富的API,使得这些操作变得简单易行。 其次,Quartz是Java中的一款强大的作业调度框架,它可以安排任务在特定的时间执行,如每天、每周或每月的某个时刻。在本例中,Quartz可以用来设定生成Excel和...
在Java编程中,发送电子邮件是一项常见的任务...总的来说,`mail.jar`和`activation.jar`是Java开发人员在处理邮件发送时不可或缺的工具,它们提供了完整的邮件处理功能,使得在Java程序中发送和接收邮件变得简单易行。
Java发送邮件是通过JavaMail API实现的,这个API包含了处理电子邮件的各种功能,如创建、发送、接收邮件等。在Java中,为了发送邮件,我们需要两个关键的库:`mail.jar`和`activation.jar`,这两个库在提供的压缩包...
总之,`mail.jar`是Java开发者处理电子邮件不可或缺的工具,它提供了丰富的API,使得在Java应用程序中实现复杂的邮件功能变得简单易行。不论你是要发送简单的文本邮件,还是创建包含附件的多媒体邮件,或者是实现...
这种方法不仅简单易行,而且可以满足大多数应用场景的需求。值得注意的是,随着技术的发展,现代项目可能倾向于使用更先进的库或服务来处理电子邮件,例如Spring Boot的邮件发送模块或外部云服务提供商(如SendGrid...
总的来说,JavaMail API与activation.jar的组合为Java开发者提供了一个强大且灵活的工具,使得在Java应用程序中实现邮件发送变得简单易行。理解并熟练掌握这两个库的使用,将极大地提升开发效率和邮件功能的质量。
这两个库为开发者提供了方便的API,使得在Java应用程序中实现邮件发送功能变得简单易行。以下将详细阐述这两个库以及它们所需的jar包。 首先,`activation.jar`是JavaBeans Activation Framework (JAF)的一部分,它...
JavaMail API是Java平台上的标准API,它提供了处理SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议)的能力。通过这个API,开发者可以构建应用程序来与邮件服务器进行交互,实现发送...
MailDemo应用可能包含输入框让用户填写邮件收件人、主题和内容,以及发送按钮触发邮件发送操作。使用Android的布局文件(如activity_main.xml)和事件监听器(如OnClickListener)来实现这一交互。 7. **异步处理*...
本项目是一款基于Java语言开发的邮件系统后台源码,该系统采用了SMTP(简单邮件传输协议)和POP(邮局协议)技术,这些技术是业界广泛使用的标准协议,用于发送和接收电子邮件。 项目结构设计合理,源码中包含了...
Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...
“jmail邮件发送探讨程序”暗示了该程序可能使用了JMail组件或类似的Java邮件API来实现邮件发送功能。JMail是用于Java应用程序的邮件发送库,支持SMTP、POP3和IMAP协议,可以用来发送HTML格式的邮件。开发者需要理解...
Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...
Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...
JavaMail API 是Java编程语言中用于处理电子邮件的接口和类集合,它允许开发人员构建能够读取...无论是简单的发送邮件,还是复杂的邮件服务器交互,JavaMail API 都提供了完善的接口和类库,使得邮件处理变得简单易行。
Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...
- **SMTP/POP3 协议**:简单邮件传输协议(SMTP)用于发送邮件,邮局协议(POP3)用于接收邮件。 - **实践案例**:利用JavaMail API实现自动发送邮件的功能。 ### 四、联系方式提供 - **联系方式**:为了获取更多...
Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...
4. **Java Mail 编程**:JavaMail API提供了发送和接收电子邮件的能力。通过JavaMail,开发者可以轻松实现SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等功能,创建复杂的邮件系统,如...