JavaMail开发------01

本文深入探讨JavaMail API的功能及其在web开发中的应用,包括邮件服务器的基本概念、SMTP和POP3协议的理解,以及如何使用JavaMail发送邮件,适用于用户注册验证、生日祝福等场景。

一、理解邮件开发涉及的基本概念;

二、了解SMTP和POP3协议

三、掌握配置Foxmail

四、掌握JavaMail发送简单邮件

JavaMail

      顾名思义提供给开发者处理电子邮件相关编辑的接口,它是Sun发布的用来处理email的API。它可以方便的执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于MicrosoftOutlook的应用程序。

为什么要学习JavaMail

       现在很多的web开发都需要使用JavaMail

应用场景:

          1、用户注册后网站发送一封激活邮件验证信息

          2、用户生日、节庆日系统发送生日祝福

          3、将最新活动和优惠等等

电子邮箱:

       需要在邮件服务器上进行申请,确切地说电子邮箱其实就是用户在邮件服务器上申请的一个账户,用户在邮件服务器上申请了账户后,邮件服务器就会为这个账户分配一定的空间。用户从而可以使用这个账号以及空间,发送电子邮件和保存别人发送过来的电子邮件。

什么是邮箱服务器?

       服务器的概念不难理解。应为作为一个web开发人员我们应该清楚什么是服务器,服务器是指一台电脑安装了一个服务器软件那么这台电脑可以称为web服务器,那么同样的一台电脑安装了邮件服务器软件那么这台电脑称为是邮箱服务器。

        要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在网络上有很多提供邮件服务的厂商:新浪、搜狐、网易等等。它们都有自己的邮件服务器,这些服务器类似于现实生活中邮局,它主要负责接收用户投递过来的邮件,并把邮件投到邮件接收者的电子邮箱中

 

 

 

/* * JCatalog Project */ package com.hexiang.utils; import java.util.List; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.Properties; import javax.mail.Session; import javax.mail.Transport; import javax.mail.Message; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hexiang.exception.CatalogException; /** * Utility class to send email. * * @author <a href="380595305@qq.com">hexiang</a> */ public class EmailUtil { //the logger for this class private static Log logger = LogFactory.getLog("com.hexiang.util.EmailUtil"); /** * Send email to a single recipient. * * @param smtpHost the SMTP email server address * @param senderAddress the sender email address * @param senderName the sender name * @param receiverAddress the recipient email address * @param sub the subject of the email * @param msg the message content of the email */ public static void sendEmail(String smtpHost, String senderAddress, String senderName, String receiverAddress, String sub, String msg) throws CatalogException { List<String> recipients = new ArrayList<String>(); recipients.add(receiverAddress); sendEmail(smtpHost, senderAddress, senderName, recipients, sub, msg); } /** * Send email to a list of recipients. * * @param smtpHost the SMTP email server address * @param senderAddress the sender email address * @param senderName the sender name * @param recipients a list of receipients email addresses * @param sub the subject of the email * @param msg the message content of the email */ public static void sendEmail(String smtpHost, String senderAddress, String senderName, List<String> recipients, String sub, String msg) throws CatalogException { if (smtpHost == null) { String errMsg = "Could not send email: smtp host address is null"; logger.error(errMsg); throw new CatalogException(errMsg); } try { Properties props = System.getProperties(); props.put("mail.smtp.host", smtpHost); Session session = Session.getDefaultInstance(props, null ); MimeMessage message = new MimeMessage( session ); message.addHeader("Content-type", "text/plain"); message.setSubject(sub); message.setFrom(new InternetAddress(senderAddress, senderName)); for (Iterator<String> it = recipients.iterator(); it.hasNext();) { String email = (String)it.next(); message.addRecipients(Message.RecipientType.TO, email); } message.setText(msg); message.setSentDate( new Date() ); Transport.send(message); } catch (Exception e) { String errorMsg = "Could not send email"; logger.error(errorMsg, e); throw new CatalogException("errorMsg", e); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值