最新使用Python进行开发网站教程项目实战(完整)

    @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,"分享多个内容"));
    }
 
}
 

猜你喜欢

转载自blog.csdn.net/Laoyan9/article/details/89763806