`
abcde5342376
  • 浏览: 34590 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java邮件发送和短信发送(一)

阅读更多

最近刚完成一个任务-付款提醒邮件的发送,对于java邮件的发送有了更深刻的认识,的确java提供的邮件发送机制的确让邮件发送这个问题变得灵活而又简单。并且由于项目组其他人负责了短信的发送,巧的是这个邮件发送的借口与短信发送的借口都被封装到了消息发送的借口,我也顺便学习了一下短信发送的原理,呵呵,算是一箭双雕吧。

那先来说说邮件发送。按照按接口编程的习惯,当然先要定义一个邮件发送的接口,再实现其接口,完成邮件发送Service层的代码。这个顺序我想大家没什么反对意见吧。

首先咱们先定义一个消息发送接口,它是邮件发送与短信发送的上层接口。

再来定义一下邮件发送器接口,由于我这里是通过velocity模板发送邮件的,所以如下定义了接口:

接着实现邮件发送的接口:

大家看到了上面的实现里注入了EmailSender,它也是一个接口,它的实现里注入了JavaMail提供的邮件发送接口。定义了两层是为了区分有模板的发送和无模板的发送。我们来看看它是什么样的:

接着实现这个EmailSender接口:

O(∩_∩)O~大家又注意到了 这个接口实现里又注入了一个接口ConfigService 它是去读取邮件发送的相关配置信息,如上所示:

// configService读出参数
Properties pros = new Properties();

pros.setProperty("mail.smtp.user", configService.getConfig(BasePropertyID.MAIL_SMTP_USER_ID));
pros.setProperty("mail.smtp.host", configService.getConfig(BasePropertyID.MAIL_SMTP_HOST_ID));
pros.setProperty("mail.smtp.port", configService.getConfig(BasePropertyID.MAIL_SMTP_PORT_ID));
pros.setProperty("mail.smtp.connectiontimeout", configService.getConfig(BasePropertyID.MAIL_SMTP_CONNECTIONTIMEOUT_ID));
pros.setProperty("mail.smtp.timeout", configService.getConfig(BasePropertyID.MAIL_SMTP_TIMEOUT_ID));
pros.setProperty("mail.smtp.from", configService.getConfig(BasePropertyID.MAIL_SMTP_FROM_ID));
pros.setProperty("mail.smtp.auth", configService.getConfig(BasePropertyID.MAIL_SMTP_AUTH_ID));

sender.setJavaMailProperties(pros);
sender.setPassword(configService.getConfig(BasePropertyID.MAIL_SMTP_PASSWORD_ID));

而且由于涉及到参数的数据成员较多,就将他们一起封装到了Mail类:

好了 整个接口都实现了,其实排除了你发送邮件提供给邮件发送接口的几个参数,剩下的也就是调用java提供的邮件发送的API和一些邮件发送必备的配置信息,必不是很难懂吧。大家肯定注意到了邮件发送接口的velocity模板解析方法:

content = VelocityParserUtil.getInstance().parseVelocityTemplate(templet, paramMap);

它具体的实现如下所示:

我们会在其他的Service中去调用邮件发送的接口,只需要在业务层里构造好邮件发送的接口所需参数,我们的邮件就可以发送出去了。还有一点请大家注意,我这里主要强调的是运用velocity模板发送邮件,接口所需要的参数templat大家不要误解为velocity模板的文件名,它其实velocity文件的文件流,是一个已经被读入的字符串。大家可以参考一下测试用例,大致可以明白是怎么回事了。



整个邮件的发送大家是否明了了呢,呵呵!

后面我们会将这个接口向上抽象,为了实现我们短信发送的实现,下一篇敬请期待哦

分享到:
评论

相关推荐

    java发送邮件和发送短信代码

    在Java编程语言中,发送邮件和短信是常见的通信方式,特别是在自动化通知、客户服务或系统集成中。...通过阅读提供的`java短信发送`和`java发送邮件`的文件,你可以找到更具体的实现细节和示例代码。

    java短信验证码、邮件发送

    二、Java邮件发送 1. **邮件发送原理**:JavaMail API是Java用于发送邮件的标准库,它支持SMTP、POP3和IMAP协议。 2. **JavaMail API使用**: - 添加JavaMail依赖,如Maven中的`javax.mail:javax.mail-api`和`...

    使用java发送(邮件,短信)帮助类

    使用java发送短信的方法有两个(一个是使用阿里的短信服务,一个是使用uoleem短信服务),使用java发送邮件的方法只有一个,这个方法支持群发和单发

    java发送邮件的源码和jar包

    这个压缩包包含了一份`MailCode.java`的源代码示例和相关的`javamail`支持文件,帮助开发者快速理解和实现邮件发送功能。 `MailCode.java`是Java发送邮件的核心代码,它主要依赖于JavaMail API。JavaMail API是一个...

    使用Java进行邮件短信发送

    JavaMail API就是这样的一个工具,它为Java开发者提供了发送电子邮件的功能,而结合其他库或服务,我们还可以实现短信发送。 首先,让我们深入了解JavaMail API。JavaMail API是Java平台上的一个标准API,用于处理...

    linux定时java程序,短信、邮件在linux自动发送

    这些测试工程可能包含邮件发送、短信发送的示例,以及如何在Java中实现多线程任务的代码。 总结起来,实现"linux定时java程序,短信、邮件在linux自动发送"需要以下几个关键点:利用JavaMail API发送邮件,使用短信...

    利用Java并配置Foxmail发送邮箱(携带附件)

    如果你有`Java发邮箱(带附件).docx`文档,可以参考其中的示例代码进行学习,同时,`MailSendBean`可能是封装邮件发送逻辑的Java Bean类,包含了上述步骤的各个部分,便于代码组织和重用。 总的来说,理解Java ...

    Java实现发送短信的架包

    Apache Commons Net提供了TCP/IP和UDP的基础网络协议,开发者可以通过SMTP(简单邮件传输协议)扩展来实现短信发送。需要注意的是,大多数短信服务商并不直接支持SMTP,而是通过HTTP或HTTPS接口进行交互,因此使用...

    java课程设计之发送邮件客户端,带发送附件

    以上就是使用Java实现邮件发送客户端,包括发送附件的基本步骤和关键知识点。在实际应用中,可能还需要处理更多复杂情况,比如错误处理、邮件模板、多语言支持等。通过这个课程设计,你可以深入了解JavaMail API的...

    微信企业微信短信邮件qq发送消息

    微信企业微信短信邮件qq发送消息

    Java实现发送emai

    使用JavaMailSender包,结合Java8和springboot框架,使用公司阿里企业邮箱免费发送邮件,因为公司邮件不限数量,所以邮件测试发送无上限。对于QQ或163邮箱账户可能需要开通SMTP服务,具体信息请百度教程,有问题可以...

    java沙箱支付宝支付,QQ邮箱发送,短信发送,语音播报,手机短信发送等功能jar以及源码

    这个资源包,"java沙箱支付宝支付,QQ邮箱发送,短信发送,语音播报,手机短信发送等功能jar以及源码",正是这样一个集合,提供了Java开发者所需要的关键组件,涵盖了支付处理、通信和通知等多个领域。以下将对这些功能...

    Java发送邮件

    这个是我发了一天的时间封装好的Java发送Email 无需任何杂乱架包 你只需要我这一架包就够了 里面有2个客户端方法 而且是static的直接用即可 支持附件奥 我忙碌了一天 这个架包大大减少了开发 什么都不需要只要一个...

    java发送短信、邮件用到的包

    commons-email-1.1.jar,mail.jar,activation.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,commons-codec-1.4.jar

    notify 邮件/短信发送

    本文将详细讲解"notify邮件/短信发送"这一主题,以及如何通过插件集成短信邮件服务商,利用Java Messaging Service (JMS) 和RESTful API实现发送功能。 1. **邮件和短信服务**: - **邮件服务**:电子邮件是一种...

    短信发送功能

    在构建一个包含短信和邮件功能的系统时,"短信发送功能"是其中的关键部分。这样的系统通常用于企业内部沟通、客户通知或者营销活动,能够提高效率并增强与用户的互动。以下将详细介绍短信发送功能及其相关知识点。 ...

    Springboot阿里、腾讯短信和邮件发送service封装

    这里我们将提供阿里云和腾讯云的短信发送方法,以及一个简单的邮件发送方法。 ```java public interface NotifyService { void sendAliyunSms(String phoneNumber, String params); void sendTencentSms(String ...

    jdev.rar_java 短信 邮件_jdev_短信_签名_邮件

    在给定的压缩包文件“jdev.rar”中,我们可以看到与Java相关的短信和邮件发送功能的实现,以及可能使用了JDev(可能是Oracle JDeveloper的简称)作为开发工具。以下是对这些知识点的详细说明: 1. **Java 短信服务*...

    JAVA邮箱发送信息

    在Java编程语言中,发送电子邮件是一项常见的任务,用于在应用程序中实现自动化通信。要实现这一功能,我们...以上提供的jar文件组合在一起,为Java开发者提供了一套强大的工具,用于构建高效、可靠的邮件发送功能。

    【瑞吉外卖】SpringBoot使用邮件发送短信验证码--完善用户登录功能

    总结来说,通过集成SpringBoot的邮件服务,我们可以方便地在应用程序中实现邮件发送功能,例如发送短信验证码。这个例子展示了如何使用QQ邮箱作为SMTP服务器,以及如何在用户登录过程中发送验证码。通过这种方式,...

Global site tag (gtag.js) - Google Analytics