JODD mail 发送带附件的邮件

 最近编写了邮件功能的代码, 在附件位置可以将附件位置传入,但是为了防止位置找不到,这里我用传入了流,但是这样有弊端,多附件的时候不容易拓展。。。。

import cn.cmschina.article.dto.EmailInfo;
import jodd.mail.Email;
import jodd.mail.EmailAttachment;
import jodd.mail.SendMailSession;
import jodd.mail.SmtpServer;
import jodd.mail.att.FileAttachment;
import jodd.petite.meta.PetiteBean;

/**
 * 带附件邮件发送
 * @author lzw
 * @Date 2019年2月20日
 */
@PetiteBean("emailSendUtil")
public class EmailSendUtil {

	private String smtpHost = null;
	
	public String sendEmailTo(EmailInfo info) throws Exception{
		String log = "";
		try {
			String user = info.getFrom().split("@")[0];
			@SuppressWarnings("rawtypes")
			SmtpServer smtpServer = SmtpServer.create(smtpHost,25)
		                .authenticateWith(user, info.getPassword());

		    Email email = Email.create()
		                .from(info.getFrom())
		                .subject(info.getSubject());
		   log +="服务器地址:"+ smtpHost;
	        if (null != info.getText()) {
	        	//正文
	        	 email.addText(info.getText());
			}
	        
	        //收件人
	        email.to(info.getTo());
	        if (null != info.getFile() && null != info.getFilename()) {
	        	String filename = info.getFilename();
		        //截取文件名
		        //String filename = filepath.substring(filepath.lastIndexOf("/")+1);
		        //截取文件类型
		        String pdf = filename.substring(filename.indexOf(".")+1);
		        EmailAttachment attachment = new FileAttachment(
		                info.getFile(),filename,pdf);
		        //设置附件
		        email.attach(attachment);
			}
	        
	        log += "Eamil对象:"+email.toString();
	        SendMailSession session = smtpServer.createSession();
	        
	        session.open();
	        session.sendMail(email);
	        session.close();
	        return log;
		} catch (Exception e) {
			e.printStackTrace();
			log+="异常信息:"+e;
			throw new Exception(log);
		}
	}
}
/**
 * @author lzw
 * @Date 2019年2月22日
 */
@PetiteBean("email")
public class EmailApi extends BaseApi implements AuthNone {


	@Setter
	@PetiteInject
	private EmailSendUtil emailUtil;
	
	@AuthExclude(internetForbidden = false)
	public String Email(Message msg) throws Exception{
		EmailInfo paramBean = getParamBean(msg, EmailInfo.class);
		String path = System.getProperty("user.dir");
		paramBean.setFile(new File("C:/Users/HP/Desktop/aaa.pdf"));
		paramBean.setFilename("aaa.pdf");
		paramBean.setFrom("chenhong1@cmstest.com");
		paramBean.setPassword("123456Qw");
		paramBean.setSubject("主题");
		paramBean.setText("正文");
		paramBean.setTo("zhaojie1@cmstest.com");
		String string = emailUtil.sendEmailTo(paramBean);
		return CommonUtil.success(string);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值