首页 > 编程知识 正文

java spring框架 入门(java实现发送邮件)

时间:2023-05-06 12:38:55 阅读:69456 作者:3262

以下示例可以使用spring发送电子邮件并将其加载到固定模板中,请尝试一下

必须用于spring-context包和com.springsource.org.Apache.velocity-1.6.2.jar。 其他是常见的软件包,包括commons系列软件包

代码如下

package asia.wildfire.mail;

import java.io.File;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import javax.mail.internet.mime消息;

importorg.Apache.velocity.app.velocity engine;

importorg.spring framework.core.io.file系统资源;

importorg.spring framework.mail.javamail.javamail sender;

importorg.spring framework.mail.javamail.javamailsenderimpl;

importorg.spring framework.mail.javamail.mime message helper;

importorg.spring framework.mail.javamail.mime message preparator;

importorg.spring framework.ui.velocity.velocityengineutils;

//*

*创建的with intellij idea。

* User: liuxiaochen

*日期: 13-9-22

* Time:下午6:50

*修改说明

*/

publicclassactsocialmailsender {

//从配置文件读取相应的邮件配置属性

privatestaticfinalstringemailhost=' SMTP.Gmail.com ';

privatestaticfinalstringusername=' * * * @ Gmail.com ';

私有身份验证密码=' * * * * * * * ';

私有身份证明邮件地址=' true ';

私有静态地图简档=null;

私密性staticjavamailsenderimplinstance=null;

私密性staticvelocityenginevelocityengine=空;

静态{

proMap=new HashMap (;

promap.put('resource.loader ',' class ' );

promap.put (' class.resource.loader.class ',' org.Apache.velocity.runtime.resource.loader.claspathresososs

}

publicstaticjavamailsendergetinstance (

if (空值==实例) {

同步(javamailsenderimpl.class )。

if (空值==实例) {

instance=new JavaMailSenderImpl (;

instance.sethost (电子邮件主机);

instance.setusername(username;

instance.set password (密码;

属性属性=new properties (;

properties.set property (' mail.SMTP.auth ',mailAuth );

使用gmail发送邮件必须设置以下参数,主要是端口不同

if (email host.index of (SMTP.Gmail.com) )。

properties.set property (' mail.SMTP.socket factory.class ',' javax.net.ssl.SSLSocketFactory ' );

properties.set property (' mail.SMTP.socket factory.fall back ',' false ' );

properties.set property (' mail.SMTP.port ',' 465 ' );

properties.set property (' mail.SMTP.socket factory.port ',' 465 ' );

}

instance.setjavamailproperties (properties;

}

}

}

返回实例;

}

publicstaticvelocityenginegetvelocityengineinstance (

if(null==velocityengine ) {

同步(velocity engine.class )。

if(null==velocityengine ) {

velocity engine=newvelocityengine (;

for (map.entry entry : promap.entryset () )。

velocity engine.set property (entry.getkey )、entry.getValue );

}

}

}

}

返回电压引擎;

}

publicstaticvoidsendemail (finalmapmodel,final String subject,final String vmfile,final String[] mailTo,finalstring[]

{

mimemessagepreparatorpreparator=newmimemessagepreparator {

注意mime消息更新器接口中只有一个回调函数

公共语音更新(最少消息最少消息) throws Exception

{

mimemessagehelpermessage=newmimemessagehelper (mime消息,true,' GBK ' );

//这是生成Mime邮件的简单工具,不用GBK的话,中文会乱码

//使用英语时,可以使用mimemessagehelpermessage=newmimemessagehelper (mime message )。

消息. setto (mailto ); //设置接收方的电子邮件地址

message.setsubject(subject; //设置邮件主题

消息. setfrom (username; //设定发送源地址

string text=velocityengineutils.mergetemplateintostring (

actsocialmailsender.getvelocityengineinstance (,虚拟机文件,' UTF-8 ',型号);

//加载从模板发送的内容,虚拟机文件成为模板文件的名称

请注意,//模板中有以中文添加GBK的模板,model中存储了替换模板字段值的模板

message.settext(text,true );

//将发送的内容分配给MimeMessageHelper,之后的true表示内容已解析为html

如果不想分析//文本的内容,可以使用false或不添加它

文件系统资源文件;

添加for(strings:files )//附件

{

file=newfilesystemresource (new file (s ); //读取附件

消息.添加附件(s,file; //在邮件中添加附件

}

}

(;

actsocialmailsender.getinstance ().send(preparator ); //发送邮件

}

publicstaticvoidsendalertemail (finalmapmodel,final String[] mailTo ) {

send email (模型、'、'、'、mailTo、new String[]{};

}

}

上述代码是发送邮件所需的代码,可以看到以下内容

测试类

公共类访问权限

publicstaticvoidmain (字符串[ ] args ) {

映射模型=new hashmap (;

model.put(username,) xiaochen.liu );

model.put (电子邮件地址,) xiaochen.liu@xingxinghuo.com);

actsocialmailsender.send email (型号,“欢迎”,“welcome.vm”,newstring () (***@gmail.com),newstring

}

}

模板文件如下

welcome.vm

你好$! {userName},欢迎来到actsocial! 你的电子邮件地址是$! {电子邮件地址}。

此消息由系统自动发送。 请不要回信。

是的,仅此而已

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。