- 浏览: 12726 次
- 性别:
- 来自: 长沙
最新评论
准备Javamail包,下载地址http://www.oracle.com/technetwork/java/index-138643.html,具体实现如下:
package org.asheng.util; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; 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; import javax.mail.internet.MimeUtility; import org.asheng.model.Email; /** * 邮件发送器,支持附件 * @author Harrison Wang */ public class MailSender { /* 定义邮件身份验证器 */ private EmailAuthenticator authenticator; /** * 以文本方式发送邮件 * @param email 待发送邮件的信息 * @return 成功则返回true,反之则返回false */ public boolean sendTextMail(Email email) { // 获取邮件会话属性 Properties props = email.getProperties(); // 判断是否需要身份验证,如需身份验证,则创建一个身份验证器 if (email.isValidate()) { authenticator = new EmailAuthenticator(email.getUserName(), email.getPassword()); } // 根据邮件会话属性和密码验证器构造一个发送邮件的session Session session = Session.getDefaultInstance(props, authenticator); // 根据session创建一个邮件消息 Message message = new MimeMessage(session); try { // 创建邮件发送者地址 Address from = new InternetAddress(email.getFormAddress()); // 设置邮件消息发送者 message.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 Address to = new InternetAddress(email.getToAddress()); message.setRecipient(Message.RecipientType.TO, to); // 设置邮件消息主题 message.setSubject(email.getSubject()); // 设置邮件消息发送的时间 message.setSentDate(new Date()); // 设置邮件消息主要内容 message.setText(email.getContent()); // 发送邮件 Transport.send(message); return true; } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } return false; } /** * 以HTML方式发送邮件 * @param email 待发送邮件的信息 * @return 成功则返回true,反之则返回false */ public boolean sendHtmlMail(Email email) { // 获取邮件会话属性 Properties props = email.getProperties(); // 判断是否需要身份验证,如需身份验证,则创建一个身份验证器 if (email.isValidate()) { authenticator = new EmailAuthenticator(email.getUserName(), email.getPassword()); } // 根据邮件会话属性和密码验证器构造一个发送邮件的session Session session = Session.getDefaultInstance(props, authenticator); // 根据session创建一个邮件消息 Message message = new MimeMessage(session); try { // 创建邮件发送者地址 Address from = new InternetAddress(email.getFormAddress()); // 设置邮件消息发送者 message.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 Address to = new InternetAddress(email.getToAddress()); message.setRecipient(Message.RecipientType.TO, to); // 设置邮件消息主题 message.setSubject(email.getSubject()); // 设置邮件消息发送的时间 message.setSentDate(new Date()); // MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象 Multipart multipart = new MimeMultipart(); // 创建一个包含HTML内容的MimeBodyPart BodyPart html = new MimeBodyPart(); // 设置HTML内容 html.setContent(email.getContent(),"text/html; charset=UTF-8"); // 添加到Multipart容器类中 multipart.addBodyPart(html); // 创建一个包含附件的 MimeBodyPart BodyPart attachmentInfo = new MimeBodyPart(); // 得到数据源 FileDataSource dataSource = new FileDataSource( email.getAttachmentName()); // 得到附件本身并绑定到对象BodyPart中 attachmentInfo.setDataHandler(new DataHandler(dataSource)); // 设置附件名称,处理中文文件名 attachmentInfo.setFileName(MimeUtility.encodeWord( dataSource.getName(), "text/html; charset=UTF-8", "UTF-8")); // 添加到Multipart容器类中 multipart.addBodyPart(attachmentInfo); // 将MimeMultipart对象设置为邮件内容 message.setContent(multipart); // 发送邮件 Transport.send(message); return true; } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return false; } public static void main(String[] args) { MailSender sms = new MailSender(); Email email = new Email(); email.setServerHost("smtp.163.com"); email.setServerPort("25"); email.setUserName("harrison@163.com"); email.setPassword("**********"); email.setFormAddress("harrison@163.com"); email.setToAddress("harrison@qq.com"); email.setSubject("harrison 你好!"); email.setContent("<font color='red'>Hello Harrison!</font>"); email.setAttachmentName("D:/Download/Converter.rar"); // sms.sendTextMail(email); sms.sendHtmlMail(email); } }
package org.asheng.model; import java.io.Serializable; import java.util.Date; import java.util.Properties; /** * 邮件基本信息类 * @author Harrison Wang */ public class Email implements Serializable { private static final long serialVersionUID = 1L; // 发送邮件的服务器主机地址 private String serverHost; // 发送邮件的服务器端口 private String serverPort = "25"; // 邮件发送者email地址 private String formAddress; // 邮件接收者email地址 private String toAddress; // 登录邮件发送服务器的用户名 private String userName; // 登录邮件发送服务器的密码 private String password; // 是否需要身份验证 private boolean validate = true; // 邮件主题 private String subject; // 邮件文本内容 private String content; // 邮件附件的文件名 private String attachmentName; // 邮件发送时间 private Date sendTime; /** * 获取邮件会话属性 * @return 返回邮件会话属性 */ public Properties getProperties() { Properties props = new Properties(); props.setProperty("mail.smtp.host", serverHost); props.setProperty("mail.smtp.port", serverPort); props.setProperty("mail.smtp.auth", validate ? "true" : "false"); return props; } public String getServerHost() { return serverHost; } public void setServerHost(String serverHost) { this.serverHost = serverHost; } public String getServerPort() { return serverPort; } public void setServerPort(String serverPort) { this.serverPort = serverPort; } public String getFormAddress() { return formAddress; } public void setFormAddress(String formAddress) { this.formAddress = formAddress; } public String getToAddress() { return toAddress; } public void setToAddress(String toAddress) { this.toAddress = toAddress; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean isValidate() { return validate; } public void setValidate(boolean validate) { this.validate = validate; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getAttachmentName() { return attachmentName; } public void setAttachmentName(String attachmentName) { this.attachmentName = attachmentName; } public Date getSendTime() { return sendTime; } public void setSendTime(Date sendTime) { this.sendTime = sendTime; } }
package org.asheng.util; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class EmailAuthenticator extends Authenticator { private String userName; private String password; public EmailAuthenticator() { } public EmailAuthenticator(String userName, String password) { this.userName = userName; this.password = password; } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(userName, password); } }
发表评论
-
Java “i++”和“++i”与"i--"和"--i"区别
2011-10-11 23:25 2809package org.asheng.test; / ... -
Linux下以源码方式编译安装Ant
2011-09-25 21:13 3107安装JDK 从 Ant svn 地址或直接到An ... -
String and StringBuffer and StringBuilder的区别
2010-11-09 17:45 883String 字符串常量 public final cla ... -
Java Serializable(序列化) 理解和总结(摘录)
2010-06-04 16:17 8771、序列化是干什么的? 简单说就是为了保存在内 ...
相关推荐
6. **发送邮件**:使用`Transport`类的`send()`方法发送邮件。 ```java Transport.send(message); ``` 7. **添加附件**:如果需要发送附件,可以使用`Multipart`和`BodyPart`类。创建一个`MimeMultipart`对象,...
这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、HTML和包含附件的邮件,以及在实际应用中需要注意的配置步骤。 1. *...
### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...
下面将详细解释如何利用JavaMail发送带有附件的邮件。 首先,你需要导入以下关键的JavaMail和Java Activation Framework (JAF) 类: ```java import javax.mail.*; import javax.mail.internet.*; import javax....
这个示例将详细介绍如何在Java应用程序中使用JavaMail发送邮件。 首先,我们需要引入JavaMail相关的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> ...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和...通过阅读和理解代码,你可以学习如何在Java应用程序中利用JavaMail API发送邮件。记得在本地环境中配置正确的SMTP服务器信息,以确保邮件能够成功发送。
下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件会话**:首先,我们需要创建一个`Properties`对象,并设置SMTP服务器的相关参数,如主机名和端口号。然后,通过`Session.getInstance()`方法初始化一个邮件...
下面是一个使用JavaMail发送邮件的详细示例代码: ```java import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class EmailSender { public ...
在JavaMail中,我们可以利用其API来实现邮件的收发功能,包括处理附件。下面我们将详细探讨如何使用JavaMail API实现邮件的收取,特别是如何通过POP3和IMAP协议获取邮件信息。 首先,确保你的项目中已经引入了...
2. **SMTP服务器配置**: 在使用JavaMail发送邮件时,首先需要配置SMTP服务器的相关信息,包括主机地址、端口号、用户名和密码。这些信息通常在应用的配置文件中定义,以便在程序运行时加载。 3. **MIME消息**: ...
通过以上步骤,你就可以利用 JavaMail 实现功能完备的邮件发送了,包括向多个人发送邮件、设置抄送和密送,以及添加多个附件。注意,实际使用时,你需要根据你的邮件服务提供商调整相应的配置参数,例如对于其他邮箱...
这篇博客文章“使用javaMail发送邮件”可能是介绍如何使用JavaMail API来构建邮件发送功能的教程。下面我们将深入探讨JavaMail的相关知识点。 首先,JavaMail API是Java社区开发的一个开源库,用于处理电子邮件。它...
总的来说,"Android使用javamail发送邮件"这个主题涵盖了Android平台上利用JavaMail API实现邮件发送的基本流程和注意事项,包括设置SMTP服务器、构建邮件消息、处理附件以及可能的安全性和用户体验优化。...
3. **编写邮件发送代码**:下面是一个简单的示例,展示了如何使用JavaMail发送一封纯文本邮件: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.example.com"); props.put(...
下面我们将详细探讨如何使用JavaMail发送邮件,以及涉及的关键知识点。 首先,要发送邮件,你需要配置一些必要的参数,包括邮箱账号、密码和SMTP服务器地址(SERVERHOST)。例如,如果你使用的是 Gmail 邮箱,SMTP ...
通过上述步骤,开发者可以利用JavaMail API在Java应用程序中轻松地发送邮件。记住,为了确保邮件的稳定发送,需要根据实际的邮件服务器配置调整代码,比如是否使用TLS/SSL,以及相应的端口号和认证方式。
这个例子展示了如何使用JavaMail发送带附件的邮件。需要注意的是,实际应用中应处理各种异常,确保邮件发送的健壮性。此外,如果你的邮件服务器需要身份验证,还需要提供一个Authenticator来处理登录信息。 总的来...
通过解析给定文件的标题、描述、标签及部分内容,我们可以深入探讨javamail发送与接收邮件的详细教程,以及如何利用JavaMail API实现邮件功能。 ### javamail发送、接收邮件 JavaMail API是由Sun Microsystems开发...
这个压缩包文件可能包含了一个简单的JavaMail发送邮件的示例源代码,我们可以从中学习如何利用JavaMail API实现邮件的发送功能。 首先,要使用JavaMail发送邮件,你需要引入以下依赖库: ```xml <groupId>...