javamail发送邮件服务

Posted 快乐编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javamail发送邮件服务相关的知识,希望对你有一定的参考价值。

一、需求

最近给一个朋友做了一个积分商城,主要是通过后台管理商品兑换信息,移动端使用微信公众号,用户想要要在移动端提供商品售后服务功能,客户从移动端发起售后服务,调用发送邮件的服务及时将需要告知的内容发送给商家客服人员;

二、实现方式

在项目中引用javamail jar包,从传统的实现方式我作了些改变,首先是要去设置一个发送邮件的账号,设置方法:账号邮箱账号》设置》账号,开启此项目服务:

通过账号的手机发送指定的短信内容,收到验证密码,作用为发送邮件的服务器账号。

再指定一个为客服收邮件的账号,将客户从移动端发送来的信息通过服务器邮件账号转发给客服人员,客服人员从反馈内容中去进行联系客户及回复邮件解决客户商品售后问题

三、以下是全部使用代码

 1 package com.hafiz.www.utils;
 2 
 3 import java.util.Properties;
 4 
 5 import javax.mail.Address;
 6 import javax.mail.Message;
 7 import javax.mail.Session;
 8 import javax.mail.Transport;
 9 import javax.mail.internet.InternetAddress;
10 import javax.mail.internet.MimeMessage;
11 
12 public class Mail {
13     public void SendMail(String name,String mobile,String email,String content) throws Exception {
14           Properties props = new Properties();
15           // 开启debug调试
16           String account="*********@qq.com";
17           props.setProperty("mail.debug", "true");
18           // 发送服务器需要身份验证
19           props.setProperty("mail.smtp.auth", "true");
20           // 设置邮件服务器主机名
21           props.setProperty("mail.host", "smtp.qq.com");
22           // 发送邮件协议名称
23           props.setProperty("mail.transport.protocol", "smtp");
24           props.setProperty("mail.smtp.socketFactory.class",
25             "javax.net.ssl.SSLSocketFactory");
26           props.setProperty("mail.smtp.port", "465");
27           props.setProperty("mail.smtp.socketFactory.port", "465");
28           // 设置环境信息
29           Session session = Session.getInstance(props);
30           // 创建邮件对象
31           Message msg = new MimeMessage(session);
32           msg.setSubject("PIANO会员之家");
33           String contents=String.format("******这是一封由服务器转发的邮件,请勿直接回复******\\n您好,我是会员%s\\n手机会为%s\\n电子邮件为%s\\n我的预约售后服务为:%s\\n请及时帮我处理!", name,mobile,email,content);
34           // 设置邮件内容  ******这是一封验证邮箱的邮件******\\n  如果您有投资的意愿,请回复邮件,我们会有业务员跟您联系!
35           msg.setText(contents);
36           // 设置发件人,并设置标头
37           msg.setFrom(new InternetAddress("*********@qq.com", "PIANO会员之家"));
38           // 获得链接
39           Transport transport = session.getTransport();
40           // 连接邮件服务器,这里设置发件人的邮箱和密码。如果是163的邮箱就把"smtp.qq.com"改成"smtp.163.com"
41           //其他的同理,不然连接不到邮件服务器
42           transport
43             .connect("smtp.qq.com", "*********@qq.com", "sasfcpccfffqzbjia");
44           // 发送邮件
45           transport
46             .sendMessage(msg, new Address[] { new InternetAddress(account) });
47           // 关闭连接
48           transport.close();
49          }
50 }
View Code

 

以上是关于javamail发送邮件服务的主要内容,如果未能解决你的问题,请参考以下文章

Android Java使用JavaMail API发送和接收邮件的代码示例

javamail电子邮件不发送

Spring集成JavaMail并利用线程池发送邮件

JavaMail邮件发送

JavaMail邮件发送

javamail 发送邮件(SSL)