场景
甲客户访问B的公司官网时,发现乙公司的产品可以引进,所以想通过官网客户留言的方式与乙沟通。
客户在某公司官网留言是不需要登录邮箱的,甲客户填入自己的留言,点击提交。这时候就需要乙公司的A邮箱发送邮件到乙公司的B邮箱,邮件内容为甲客户的留言信息。
发送人和接收人均为乙公司,只不过使用不同的邮箱
一、springboot集成的mail
这种方式发送邮件,需要几个必需的参数:发送人邮箱服务器(host)、发送人账号(username)、发送人授权码(password)。
邮箱服务器可以去搜索一下,qq邮箱:smtp.qq.com 163邮箱:smtp.163.com
授权码,需要登录发送人邮箱,从账号设置里面进行获取,开通POP3/SMTP提供的授权码,如果没有授权码,使用真实密码
我用的是163的邮箱,所以以163的为例子
1. 引入maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置application.properties
spring.mail.host=smtp.163.com
spring.mail.username=zhansan@163.com
spring.mail.password=KIRLYASCYAZIOZHD
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
3. 编写邮件工具类
import com.dakj.entity.Email;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.*;
public class EmailUtils {
@Autowired
private JavaMailSender mailSender;
public String sendEmail(@RequestBody Email email) {
String customerName = "李先生";
String customerTelphone = "15088888888";
String customerContent = "看了下你们的产品,我很满意,可以一起合作吗?";
//客户留言信息
String content = "\n客户姓名:" + customerName + "\n客户手机:" + customerTelphone + "\n客户问题:" + customerContent;
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// 发送人邮件地址
simpleMailMessage.setFrom("zhangsan111@163.com");
// 收件人邮件地址
simpleMailMessage.setTo("zhangsan222@163.com");
// 邮件主题
simpleMailMessage.setSubject("==== 客户留言 ====");
// 邮件内容
simpleMailMessage.setText(content);
// 发送邮件
mailSender.send(simpleMailMessage);
return "发送邮件成功!";
}
}
闲逛csdn,看到篇更详细的邮件发送的文章: