您的位置:首页 > 编程语言 > Java开发

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

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

实体类:

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 Properti
4000
esLoader("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("");

    });

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: