java发送邮箱(发送html自定义表单)(一)

先看一下实现效果:

这是一个动态表单

一、发送邮箱需要邮箱账号及邮箱授权码

二、controller

@PostMapping("/mail")
public AjaxResult mail(@RequestBody UnEventsActivityVo activityVo) throws EmailException {
    if (StringUtils.isEmpty(activityVo.getToken())){
        return AjaxResult.error("token不能为空,请登录");
    }
    String title="";
    if (activityVo.getaId()!=null){
        UnArticle article=articleService.selectUnArticleByEId(activityVo.getaId());
        title=article.getTitle();
    }
    LoginUser loginUser = tokenService.getUser(activityVo.getToken());
    String mail = loginUser.getUser().getEmail();
    Map<String, String> map = new HashMap<>();
    // name
    if (StringUtils.isNotEmpty(activityVo.getName())) {
        map.put("Name", activityVo.getName());
    }
    // gender
    if (StringUtils.isNotEmpty(activityVo.getGender())) {
        map.put("Gander", activityVo.getGender());
    }
    // country
    if (StringUtils.isNotEmpty(activityVo.getCountry())) {
        map.put("Country", activityVo.getCountry());
    }
    // mail
    if (StringUtils.isNotEmpty(activityVo.getEmail())) {
        map.put("E-mail", activityVo.getEmail());
    }
    // number
    if (StringUtils.isNotEmpty(activityVo.getPhone())) {
        map.put("Contact Number", activityVo.getPhone());
    }
    // ORG-name
    if (StringUtils.isNotEmpty(activityVo.getOrgName())) {
        map.put("ORG-name", activityVo.getOrgName());
    }
    //设置邮件内容
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append("\r\n");
    stringBuilder.append("<html><head></head><body><h3>Events活动报名</h3>");
    stringBuilder.append("<h6>活动名称:"+title+"</h6>");
    stringBuilder.append("<table border=\"4\" style=\"border:solid 1px #E8F2F9;font-size=4px;\">");
    stringBuilder.append("<tr style=\"background-color: #428BCA; color:#ffffff\">");
    map.forEach((key, value) -> {
        stringBuilder.append("<th width=\"180px\">"+key+"</th>");
    });
    stringBuilder.append("</tr>");
    stringBuilder.append("</tr>");
    map.forEach((key, value) -> {
        stringBuilder.append("<td style=\"text-align:center\"> <b>"+map.get(key)+"</b></td>");
    });
    stringBuilder.append("</tr>");
    stringBuilder.append("</table>");
    stringBuilder.append("</body></html>");
    String htmlTxt = stringBuilder.toString();
    emailService.email(htmlTxt,mail);
    return AjaxResult.success();
}

三、emailService

public interface EmailService
{
   public int email(String htmlTxt,String mail) throws EmailException;
}

四、EmailServiceImpl

@Service
public class EmailServiceImpl implements EmailService
{
    @Autowired
    private RuoYiConfig ruoYiConfig;
    @Override
    public int email(String htmlTxt, String mail) throws EmailException {
        // 这里需要使用HtmlEmail创建一个email对象
        HtmlEmail email = new HtmlEmail();
        email.setHostName(ruoYiConfig.getMailhost());
//验证
        email.setAuthenticator(new DefaultAuthenticator(“邮箱发送人”, “邮箱授权码”));
        email.setFrom(“邮箱发送人”);
        //接收人邮箱
        email.addTo(mail);
        email.setSubject("这是一个测试邮件");
        email.setCharset("UTF-8");
      
        // 设置html内容
        email.setHtmlMsg(htmlTxt);
        // 设置替代内容,如果不支持html
        email.setTextMsg("你的邮件客户端不支持html邮件:"+htmlTxt);
        email.send();
        return 0;
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 致远OA是一款常用的企业办公自动化软件,支持二次开发功能。在致远OA中,发送表单的操作可以通过二次开发来实现。 首先,二次开发需要了解致远OA的基本原理和开发框架。致远OA采用B/S架构,前端使用HTML、CSS和JavaScript等技术,后端采用Java语言进行开发开发过程主要包括业务逻辑编写、数据库设计与开发、接口开发等。 要实现发送表单功能,需要在致远OA中添加相应的表单模板和发送功能。通过二次开发,可以自定义表单页面和相关逻辑,实现表单的填写、提交和发送。 具体操作步骤如下: 1. 首先,根据实际需求,在致远OA系统中创建表单模板。表单模板可以使用致远OA提供的表单设计器进行设计,也可以使用其他工具进行设计,并将设计好的表单模板导入到致远OA系统中。 2. 在二次开发中编写表单页面的前端代码。可以使用HTML、CSS和JavaScript等技术,根据需求设计表单的样式和布局。同时,需要编写与表单相关的JavaScript代码,处理表单的验证、提交等操作。 3. 在致远OA系统中创建表单对应的数据表,用于存储表单数据。可以使用数据库管理工具创建数据表,并将数据表与致远OA系统进行关联。 4. 在二次开发中编写表单页面的后端代码。可以使用Java语言编写,通过编写相关的接口,实现表单数据的查询、保存和发送等功能。在后端代码中,需要与致远OA系统进行数据交互,可以通过调用致远OA提供的API来实现。 5. 最后,在致远OA系统中添加表单发送按钮,并将其与相应的功能进行关联。在二次开发中,可以通过编写按钮的点击事件,调用相应的接口,实现发送表单的功能。 通过以上步骤,就可以实现致远OA二次开发发送表单的功能。在具体操作过程中,还需要根据实际需求进行相应的调整和修改。 ### 回答2: 致远OA是一款企业办公自动化软件,提供标准流程和表单模板。为了满足特定的业务需求,致远OA支持二次开发,并且可以通过二次开发来实现发送表单功能。 在进行二次开发之前,首先需要明确发送表单的具体需求。例如,是需要在特定条件下自动发送表单给指定用户,还是由用户手动触发发送表单等。然后,根据需求,通过OA的二次开发平台进行相应的代码编写。 一般来说,开发发送表单的逻辑包括以下几个步骤: 1. 获取表单数据:根据业务需求,通过OA提供的接口或数据库查询获取需要发送表单数据。 2. 生成邮件内容:将表单数据转化为邮件内容,并设置邮件的标题、正文等信息。可以使用OA提供的邮件发送接口或者其他第三方邮件服务进行发送。 3. 设置接收人:确定接收表单的用户,可以根据部门、角色、特定人员等进行指定。在生成邮件时,需要将接收人信息设置为收件人地址。 4. 触发发送:根据业务逻辑,确定发送表单的触发条件,如特定事件发生、用户手动触发等。当满足触发条件时,调用发送表单的代码,将表单发送给指定的接收人。 在二次开发过程中,需要根据具体需求编写相关的代码,并测试其正确性和稳定性。同时,也需要注意系统的安全性和稳定性,避免可能的漏洞和错误。另外,开发完成后,还需进行相应的文档记录和发布流程,便于系统的维护和扩展。 通过以上步骤的二次开发,致远OA可以实现发送表单的功能,方便用户根据自身需求进行业务流程的管理和表单的定制化发送。 ### 回答3: 致远OA是一款功能强大的办公自动化系统,可以帮助企业实现业务流程的自动化管理。在进行OA二次开发时,我们可以通过发送表单来实现数据的提交和流转。 首先,我们需要在OA系统中进行表单的设计和配置。可以根据企业的实际需求,自定义各种表单模板,包括请假、报销、采购等各种业务表单。通过系统管理员或开发人员的操作,将设计好的表单模板添加到系统中。 接下来,当用户需要提交表单时,可以通过OA系统提供的接口或者自定义的界面进行表单的填写和提交。用户可以根据表单中的要求填写相应的信息,例如请假的时间、原因等。填写完成后,点击提交按钮,表单的数据将会被发送到后台进行处理。 在二次开发中,我们可以对表单的提交进行自定义的逻辑处理。例如,对于请假申请,系统可以根据用户提交的请假时间和原因,自动计算出剩余的可用假期天数,并进行相应的提醒和审批流程。这样可以提高企业的工作效率和管理水平。 除了发送表单,在OA系统的二次开发中还可以实现其他功能,例如自动化的邮件通知、数据自动同步等。这些功能都可以根据企业的实际需求进行定制开发,以提高工作效率和管理水平。 综上所述,致远OA二次开发发送表单是一项重要的功能。通过表单的设计、填写和提交,可以实现数据的流转和处理,提高企业的工作效率和管理水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值