@Autowired
private JavaMailSenderImpl mailSender;
public void sendMail() throws MessagingException {
//简单邮件
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom("[email protected]");
simpleMailMessage.setTo("[email protected]");
simpleMailMessage.setSubject("BugBugBug");
simpleMailMessage.setText("一杯茶,一根烟,一个Bug改一天");
mailSender.send(simpleMailMessage);
//复杂邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setFrom("[email protected]");
messageHelper.setTo("[email protected]");
messageHelper.setSubject("BugBugBug");
messageHelper.setText("一杯茶,一根烟,一个Bug改一天!");
messageHelper.addInline("bug.gif", new File("xx/xx/bug.gif"));
messageHelper.addAttachment("bug.docx", new File("xx/xx/bug.docx"));
mailSender.send(mimeMessage);
}
# tomcat port
server.port=8088
# thymeleaf
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.check-template-location=true
spring.thymeleaf.mode=HTML
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.cache=false
# datasource
#druid数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/db_blog?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=1111
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis
mybatis.mapper-locations=classpath:mapper/*.xml
#关闭默认的favicon,将自己的图标放在static下显示自己的图标
spring.mvc.favicon.enabled=false
#email
spring.mail.host=smtp.163.com
spring.mail.username= [email protected]
spring.mail.password=your_password
spring.mail.port=465
#设置为SSL协议
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
[email protected]
**
* Create bySeptember
* 2019/4/7
* 21:42
*/
@Service
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSenderImpl mailSender;//注入邮件工具类
@Async
@Override
public MailVo sendMail(MailVo mailVo) {
try {
checkMail(mailVo); //1.检测邮件
sendMimeMail(mailVo); //2.发送邮件
return saveMail(mailVo); //3.保存邮件
} catch (Exception e) {
mailVo.setStatus("fail");
mailVo.setError(e.getMessage());
return mailVo;
}
}
//检测邮件信息类
private void checkMail(MailVo mailVo) {
if (StringUtils.isEmpty(mailVo.getTo())) {
throw new RuntimeException("邮件收信人不能为空");
}
if (StringUtils.isEmpty(mailVo.getSubject())) {
throw new RuntimeException("邮件主题不能为空");
}
if (StringUtils.isEmpty(mailVo.getText())) {
throw new RuntimeException("邮件内容不能为空");
}
}
//构建复杂邮件信息类
private void sendMimeMail(MailVo mailVo) {
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mailSender.createMimeMessage(), true);//true表示支持复杂类型
//mailVo.setFrom(getMailSendFrom());//邮件发信人从配置项读取
messageHelper.setFrom(mailVo.getFrom());//邮件发信人
messageHelper.setTo(mailVo.getTo().split(","));//邮件收信人
messageHelper.setSubject(mailVo.getSubject());//邮件主题
messageHelper.setText(mailVo.getText());//邮件内容
if (!StringUtils.isEmpty(mailVo.getCc())) {//抄送
messageHelper.setCc(mailVo.getCc().split(","));
}
if (!StringUtils.isEmpty(mailVo.getBcc())) {//密送
messageHelper.setCc(mailVo.getBcc().split(","));
}
if (mailVo.getMultipartFiles() != null) {//添加邮件附件
for (MultipartFile multipartFile : mailVo.getMultipartFiles()) {
messageHelper.addAttachment(multipartFile.getOriginalFilename(), multipartFile);
}
}
if (StringUtils.isEmpty(mailVo.getSentDate())) {//发送时间
mailVo.setSentDate(new Date());
messageHelper.setSentDate(mailVo.getSentDate());
}
mailSender.send(messageHelper.getMimeMessage());//正式发送邮件
mailVo.setStatus("ok");
} catch (Exception e) {
throw new RuntimeException(e);//发送失败
}
}
//保存邮件
private MailVo saveMail(MailVo mailVo) {
//将邮件保存到数据库..
return mailVo;
}
//获取邮件发信人
public String getMailSendFrom() {
return mailSender.getJavaMailProperties().getProperty("from");
}
}
@PostMapping(value = "comment")
@ResponseBody
public ResponseVO comment(HttpServletRequest request, HttpServletResponse response,
@RequestParam Integer cid, @RequestParam Integer coid,
@RequestParam String author, @RequestParam String mail,
@RequestParam String url, @RequestParam String text) {
if (null == cid || StringUtils.isBlank(text)) {
return ResponseVOUtil.error(ResponseEnum.UNKNOWN_ERROR.getCode(), "请输入完整后评论");
}
if (StringUtils.isNotBlank(author) && author.length() > 50) {
return ResponseVOUtil.error(ResponseEnum.UNKNOWN_ERROR.getCode(), "姓名过长");
}
if (StringUtils.isNotBlank(mail) && !TaleUtils.isEmail(mail)) {
return ResponseVOUtil.error(ResponseEnum.UNKNOWN_ERROR.getCode(), "请输入正确的邮箱格式");
}
if (StringUtils.isNotBlank(url)&&!HttpUitl.isConnect(url)) {
return ResponseVOUtil.error(ResponseEnum.UNKNOWN_ERROR.getCode(), "请输入正确的URL格式");
}
if (text.length() > 200) {
return ResponseVOUtil.error(ResponseEnum.UNKNOWN_ERROR.getCode(), "请输入200个字符以内的评论");
}
author = TaleUtils.cleanXSS(author);
text = TaleUtils.cleanXSS(text);
author = EmojiParser.parseToAliases(author);
text = EmojiParser.parseToAliases(text);
Comments comments = new Comments();
comments.setAuthor(author);
comments.setCid(cid);
comments.setCreated(new Date());
comments.setIp(request.getRemoteAddr());
comments.setUrl(url);
comments.setContent(text);
comments.setMail(mail);
String result = commentService.insertComment(comments);
if(!result.equals(WebConst.SUCCESS_RESULT)){
return ResponseVOUtil.error(ResponseEnum.UNKNOWN_ERROR);
}
//发送邮件
MailVo mailVo = new MailVo();
mailVo.setFrom("[email protected]");
mailVo.setTo("[email protected]");
mailVo.setSubject("收到您朋友【"+author+"】的信件,Ta的邮箱:"+mail);
mailVo.setText(text);
mailService.sendMail(mailVo);
return ResponseVOUtil.success();
}
package com.example.a4_8share;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void simpletext(View v){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,"分享一个简单文本");
startActivity(intent);
}
}
package com.example.a4_8share;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class Receiver extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receiver);
textView = findViewById(R.id.receiver);
handlerContent();
}
//处理内容
public void handlerContent() {
Intent intent = getIntent();
String type = intent.getType();
String action = intent.getAction();
if (Intent.ACTION_SEND.equals(action)) {
//判断是否是文本,如果是才选择这种处理方式
if ("text/plain".equals(type)) {
String info = intent.getStringExtra(Intent.EXTRA_TEXT);
System.out.println(info);
textView.setText(info);
}
}
}
}
package com.example.a4_8share;
import android.content.Intent;
import android.net.Uri;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.ShareActionProvider;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
MenuItem item = menu.findItem(R.id.share);
ShareActionProvider sap = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,"ShareActionProvider");
sap.setShareIntent(intent);
return true;
}
public void simpletext(View v){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,"分享一个简单文本");
//startActivity(intent);
startActivity(intent.createChooser(intent,"设置了一枚指定选择器"));
}
public void photo(View v){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");
//uri即图片路径
Uri uri=Uri.parse("/storage/Pictures/CoolMarket/111.jpg");
intent.putExtra(Intent.EXTRA_STREAM,uri);
startActivity(intent.createChooser(intent,"分享图片"));
}
public void multiple(View view){
Uri uri1=Uri.parse("/storage/Pictures/CoolMarket/111.jpg");
Uri uri2=Uri.parse("/storage/Pictures/CoolMarket/111.jpg");
ArrayList<Uri> list=new ArrayList<>();
list.add(uri1);
list.add(uri2);
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,list);
startActivity(intent.createChooser(intent,"分享多个内容"));
}
}
最新使用Python进行开发网站教程项目实战(完整)
猜你喜欢
转载自blog.csdn.net/Laoyan9/article/details/89763806
今日推荐
周排行