java中如何实现邮件的发送包括网页文件的发送

说明:1、本程序可实现网页文件、普通文件的发送。

2、实现邮件发送需要三个jar包的支持:

具体实现:

一、首先建立MailAuthenticator类,香港虚拟主机,继承自javax.mail.Authenticator类。此类实现发件箱的登陆验证。

package com.company.simplemail; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; /** * 服务器邮箱登录验证 */ public class MailAuthenticator extends Authenticator { // 用户名(登录邮箱) private String username; // 密码 private String password; /** * 初始化邮箱和密码* @param username 邮箱 * @param password 密码 */ public MailAuthenticator(String username, String password){ this.username = username; this.password = password; } String getPassword() { return password; } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } String getUsername() { return username; } public void setPassword(String password) { this.password = password; } public void setUsername(String username) { this.username = username; } }

二、。

package com.company.simplemail; import java.util.List; import java.util.Properties; 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.MimeMessage.RecipientType; import javax.mail.internet.MimeMultipart; /** * 简单邮件发送器,可单发,群发。 */ public class SimpleMailSender { //发送邮件的props文件 private final transient Properties props = System.getProperties(); //邮件服务器登录验证 private transient MailAuthenticator authenticator; //邮箱session private transient Session session; /** * 初始化邮件发送器 * @param smtpHostName SMTP邮件服务器地址 * @param username 发送邮件的用户名(地址) * @param password 发送邮件的密码 */ public SimpleMailSender(final String smtpHostName, final String username, final String password) { init(username, password, smtpHostName); } /** * 初始化邮件发送器 * @param username 发送邮件的用户名(地址),并以此解析SMTP服务器地址 * @param password 发送邮件的密码 */ public SimpleMailSender(final String username, final String password) { // 通过邮箱地址解析出smtp服务器,服务器空间,对大多数邮箱都管用 final String smtpHostName = “smtp.” + username.split(“@”)[1]; init(username, password, smtpHostName); } /** * 初始化 * @param username 发送邮件的用户名(地址) * @param password 密码 * @param smtpHostName SMTP主机地址 */ private void init(String username, String password, String smtpHostName) { // 初始化props props.put(“mail.smtp.auth”, “true”); props.put(“mail.smtp.host”, smtpHostName); // 验证 authenticator = new MailAuthenticator(username, password); // 创建session session = Session.getInstance(props, authenticator); } /** * 发送邮件 * @param recipient收件人邮箱地址 * @param subject邮件主题 * @param content邮件内容 * @throws AddressException * @throws MessagingException */ public void send(String recipient, String subject, String content) throws AddressException, MessagingException { // 创建mime类型邮件 final MimeMessage message = new MimeMessage(session); // 设置发信人 message.setFrom(new InternetAddress(authenticator.getUsername())); // 设置收件人 message.setRecipient(RecipientType.TO, new InternetAddress(recipient)); // 设置主题 message.setSubject(subject); // 设置邮件内容 Multipart mp = new MimeMultipart(“related”); MimeBodyPart mbp = new MimeBodyPart(); mbp.setContent(content.toString(),”text/html;charset=utf-8″); mp.addBodyPart(mbp); message.setContent(mp); // 设置邮件内容 //message.setContent(content.toString(), “text/html;charset=utf-8”); // 发送 Transport.send(message); } /** * 群发邮件 * @param recipients收件人们 * @param subject 主题 * @param content 内容 * @throws AddressException * @throws MessagingException */ public void send(List<String> recipients, String subject, String content) throws AddressException, MessagingException { // 创建mime类型邮件 final MimeMessage message = new MimeMessage(session); // 设置发信人 message.setFrom(new InternetAddress(authenticator.getUsername())); // 设置收件人们 final int num = recipients.size(); InternetAddress[] addresses = new InternetAddress[num]; for (int i = 0; i < num; i++) { addresses[i] = new InternetAddress(recipients.get(i)); } message.setRecipients(RecipientType.TO, addresses); // 设置主题 message.setSubject(subject); // 设置邮件内容 message.setContent(content.toString(), “text/html;charset=utf-8”); // 发送 Transport.send(message); } /** * 发送邮件 * @param recipient收件人邮箱地址 * @param mail邮件对象 * @throws AddressException * @throws MessagingException *   */ public void send(String recipient, SimpleMail mail) throws AddressException, MessagingException { send(recipient, mail.getSubject(), mail.getContent()); } /** * 群发邮件 * @param recipients 收件人们 * @param mail 邮件对 象  * @throws AddressException * @throws MessagingException */ public void send(List<String> recipients, SimpleMail mail) throws AddressException, MessagingException { send(recipients, mail.getSubject(), mail.getContent()); } }

三、,这只是个普通邮件类,主要用来封装所要发送的邮件信息。

在爱情里,有时候简单的一句话,能胜过千言万语。

java中如何实现邮件的发送包括网页文件的发送

相关文章:

你感兴趣的文章:

标签云: