使用javamail实现邮件发送功能完整代码

来源:互联网 发布:java 进程看门狗 编辑:程序博客网 时间:2024/05/29 03:20

最近项目中要用到发邮件的功能, 在网上找了好多代码,看着别人发布的代码整理出来的东西,这个代码已经测试过,包括样式什么的,都是直接拿过去就能用的


实体类:

public class MailInfo {

private int id;
private String toAddress;
private String subject;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getToAddress() {
return toAddress;
}
public void setToAddress(String toAddress) {
this.toAddress = toAddress;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}

}


applicationContext中要添加的配置:

<!-- 发送邮件配置 -->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.wo.cn"/>
<property name="port" value="25"/>
<property name="username" value="
你的邮箱" />
<property name="password" value="
你邮箱的密码"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.EnableSSL.enable">true</prop>
</props>
</property>
</bean>
<!-- 配置线程池 -->
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5"/>
<property name="maxPoolSize" value="10"/>
<property name="queueCapacity" value="25"/>
</bean>


发送邮件的工具类:

public class MailSender {


//读取配置文件
private static PropertiesLoader loader = new PropertiesLoader("bdsc-web.properties");

private TaskExecutor taskExecutor = (TaskExecutor) new  ClassPathXmlApplicationContext("classpath:applicationContext.xml").getBean("taskExecutor");

private JavaMailSender javaMailSender = (JavaMailSender) new ClassPathXmlApplicationContext("classpath:applicationContext.xml").getBean("javaMailSender") ;

public void sendMail(String toAddress, String subject, String content){
taskExecutor.execute(new sendMailThread(toAddress, subject, content));
}

/*内部线程类,使用线程发送邮件*/
private class sendMailThread implements Runnable{
private String toAddress;
private String subject;
private String content;
private sendMailThread(String toAddress, String subject, String content){
this.toAddress = toAddress;
this.subject = subject;
this.content = content;
}
@Override
public void run() {
mailSimple(toAddress, subject, content);
}
}

private void mailSimple(String toAddress, String subject, String content){
//建立邮件消息
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = null;
try {
//可发送附件
helper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
} catch (MessagingException e) {
e.printStackTrace();
}
//设定mail server
try {
helper.setTo(toAddress);
helper.setFrom(loader.getProperty("mail.smtp.username"));
helper.setSubject(subject);
helper.setText(content,true);
} catch (MessagingException e) {
e.printStackTrace();
}
javaMailSender.send(mimeMessage);
System.out.println("发送成功");
}
}


service层:

public boolean sendMail(String toAddress, String subject, String content){
MailSender sender = new MailSender();
try {
sender.sendMail(toAddress, subject, content);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}


controller:

@RequestMapping(value="sendMail")
public @ResponseBody boolean sendMail(MailInfo info){
boolean result = mailservice.sendMail(info.getToAddress(),info.getSubject(),info.getToAddress());
return result;
}

页面:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>发送邮件</title>
    <link href="style/bootstrap.css" rel="stylesheet" />
    <link href="style/sendMail.css" rel="stylesheet" />
    <script src="js/jquery-1.10.2.js"></script>
    <script src="js/sendMail.js"></script>
</head>
<body>
    <div class="container send-container">
        <div class="control-group content-group">
            <span class="prompt-font">收件人</span>
            <input placeholder="请输入收件人" type="text" class="inputbox" name="toAddress" />
        </div>
        <div class="control-group content-group">
            <span class="prompt-font">主题</span>
            <input placeholder="请输入主题" type="text" class="inputbox" name="subject" />
        </div>
        <div class="control-group content-group">
            <span class="prompt-font">内容</span>
            <textarea placeholder="请输内容" class="mail-content" name="content"></textarea>
        </div>
        <div class="send-button">
            <p class="send">发送</p>
        </div>


        <div class="message">
            <p></p>
            <span class="cancle">×</span>
        </div>
    </div>
</body>

样式: 

body {
    margin:0;
    padding:0;
}


.send-container {
    margin-top:50px;
}
    .send-container .content-group {
        margin-bottom:15px;
    }
        .send-container  .content-group  .prompt-font {
            display:block;
            margin-bottom:3px;
            color:#0066FF;
            font-weight:bold;
            font-family:'Microsoft YaHei';
        }


        .send-container .content-group .inputbox {
            outline:none;
            width:100%;
            height:35px;
            padding:0 10px;
            border-radius:9px;
            border:1px solid #cccccc;
            color:#999;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            -webkit-transition: border linear .2s, box-shadow linear .2s;
            -moz-transition: border linear .2s, box-shadow linear .2s;
            -o-transition: border linear .2s, box-shadow linear .2s;
            transition: border linear .2s, box-shadow linear .2s;
        }
        .send-container .content-group .mail-content {
            width:100%;
            border-radius:9px;
            border:1px solid #cccccc;
            color:#999;
            resize:none;
            outline:none;
            padding:7px 10px 0 10px;
            height:330px;
        }
    .send-container .send-button {
        float:right;
    }
        .send-container .send-button .send {
            width:70px;
            height:30px;
            background-color:#0099ff;
            text-align:center;
            line-height:30px;
            color:#fff;
            font-size:12px;
            border-radius:4px;
            cursor:pointer;
        }


    .send-container .message {
        position:absolute;
        width:80px;
        height:40px;
        background-color:#fff;
        box-shadow:rgba(0,0,0,0.04) 2px 1px 0;
        border:1px solid #eee;
        top:-40px;
        left:600px;
    }
        .send-container .message p {
            text-align:center;
            color:#999;
            font-size:12px;
            line-height:40px;
            margin:0;
            padding:0;
            color:#0094ff;
        }
        .send-container .message .cancle {
            position:relative;
            display:inline-block;
            line-height:15px;
            border-radius:100%;
            top:-49px;
            left:70px;
            color:#eb2d2d;
            font-weight:bold;
            font-size:22px;
            cursor:pointer;
            width:15px;
            height:15px;
            background-color:#fff;
            border-radius:100%;
        }


js代码:

/// <reference path="jquery-1.10.2.js" />
$(document).ready(function () {
    init();
});


function init() {
    send();
    messageHide();
}


function send() {
    $(".send-container .send-button .send").on("click", function () {
    var toAddress = $("input[name='toAddress']").val();
    var subject = $("input[name='subject']").val();
    var content = $("textarea[name='content']").val();
   
    var info="toAddress="+toAddress+"&subject="+subject+"&content="+content;
    $.ajax({
    url:'sendMail',
    type:'POST',
    dataType:'JSON',
    data:info,
    success:function(data){
    if(data){
    $(".send-container .message p").html("发送成功");
    $(".send-container .message").animate({top:"45px"},"1500");
    $("input[name='toAddress']").val("");
    $("input[name='subject']").val("");
    $("textarea[name='content']").val("");
    }else{
    $(".send-container .message p").html("发送失败");
    $(".send-container .message").animate({top:"45px"},"1500");
    $("input[name='toAddress']").val("");
    $("input[name='subject']").val("");
    $("textarea[name='content']").val("");
    }
    }
    });
    });
}


function messageHide() {
    $(".send-container .message .cancle").on("click", function () {
        $(".send-container .message").animate({ top: "-40px" }, "1500");
        $("input[name='toAddress']").val("");
$("input[name='subject']").val("");
$("textarea[name='content']").val("");
    });
}



0 0
原创粉丝点击