java 发送邮件昵称_Java中Spring发送邮件实现与用中文发件人昵称

百度找了半天发现问题关键在于使用固定的格式来填充From属性,如下:

代码如下

// 设置收件人,寄件人

String nick = javax.mail.internet.MimeUtility.encodeText("您的昵称");

messageHelper.setFrom(new InternetAddress(nick + " "));

messageHelper.setTo(toMail);

messageHelper.setSubject(subject);

全部实例代码

spring 对mail的支持是org.springframework.mail.MailSender接口来定义的,其中的 org.springframework.mail.javamail.JavamailSenderImpl这个实现类提供了对javamail的支持,下面简单介绍其用法,首先看下不用注入的方法,再看用注入的方法。

1、发送简单邮件的例子

首先,我们要需要springframwork 1.2.8中lib目录下的j2ee目录的activation.jar和mail.jar文件,将它们放到工程的lib目录下去。

发送一个简单邮件的例子如下

代码如下

import org.springframework.mail.javamail.JavaMailSenderImpl;

import org.springframework.mail.SimpleMailMessage;

public class SimpleMailDemo {

public static void main(String[] args) throws Exception {

JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();

// 设定 Mail Server

senderImpl.setHost("mail.xxxxx");

//SMTP验证时,需要用户名和密码

senderImpl.setUsername("abc");

senderImpl.setPassword("defdf");

// 建立邮件讯息

SimpleMailMessage mailMessage = new SimpleMailMessage();

// 设定收件人、寄件人、主题与内文

mailMessage.setTo(hello@abc.com);

mailMessage.setFrom(der@def.com);

mailMessage.setSubject("Test");

mailMessage.setText("This is a test!!!");

// 传送邮件

senderImpl.send(mailMessage);

System.out.println("邮件传送OK..");

}

}

2、发送HTML格式的邮件

要发送HTML格式的话,要用

代码如下

org.springframework.mail.javamail.MimeMessageHelper来建立HTML邮件

import org.springframework.mail.javamail.JavaMailSenderImpl;

import javax.mail.internet.MimeMessage;

import org.springframework.mail.javamail.MimeMessageHelper;

public class HTMLMailDemo {

public static void main(String[] args) throws Exception {

JavaMailSenderImpl senderImpl =

new JavaMailSenderImpl();

// 设定 Mail Server

senderImpl.setHost("mail.xxxxx");

//SMTP验证时,需要用户名和密码

senderImpl.setUsername("abc");

senderImpl.setPassword("defdf");

// 建立邮件讯息

MimeMessage mailMessage =

senderImpl.createMimeMessage();

MimeMessageHelper messageHelper =

new MimeMessageHelper(mailMessage);

// 设定收件人、寄件人、主题与内文

messageHelper.setTo("xxx@your_mail_server.com");

messageHelper.setFrom("xxx@your_mail_server.com");

messageHelper.setSubject("Test");

messageHelper.setText(

"

Hello! Spring!"

+ "

", true);

// 传送邮件

senderImpl.send(mailMessage);

System.out.println("邮件传送OK...");

}

}

3、发送带附件的邮件

这时要用

代码如下

MimeMessageHelper的addAttachement()方法

import java.io.File;

import org.springframework.mail.javamail.JavaMailSenderImpl;

import javax.mail.internet.MimeMessage;

import org.springframework.core.io.FileSystemResource;

import org.springframework.mail.javamail.MimeMessageHelper;

public class AttachedFileDemo {

public static void main(String[] args) throws Exception {

JavaMailSenderImpl senderImpl =

new JavaMailSenderImpl();

//SMTP验证时,需要用户名和密码

senderImpl.setUsername("abc");

senderImpl.setPassword("defdf");

MimeMessage mailMessage =     senderImpl.createMimeMessage();

MimeMessageHelper messageHelper =  new MimeMessageHelper(mailMessage, true);

messageHelper.setTo("def@erer.net");

messageHelper.setFrom("bfg@tom.com");

messageHelper.setSubject("Test");

messageHelper.setText(

"

Hello! Spring!"

+ "

", true);

FileSystemResource file =

new FileSystemResource(

new File("d:/test.rar"));

messageHelper.addAttachment("test.rar", file);

senderImpl.send(mailMessage);

System.out.println("OK");

}

}

4、用注入的方式来配置邮件,和之前的差不多拉

smtp.xxx.com

true

你的Email地址

你的Email密码

收件人地址

你的地址

A Spring Mail sender

上面的配置好以后就可以直接发送了, 看看TestSenderMail.java的代码:

代码如下

package test.mail;

import org.springframework.mail.MailException;

import org.springframework.mail.MailSender;

import org.springframework.mail.SimpleMailMessage;

public class TestSenderMail {

private MailSender mailSender;

private SimpleMailMessage mailMessage;

public TestSenderMail() {

}

public SimpleMailMessage getMailMessage() {

return mailMessage;

}

public void setMailMessage(SimpleMailMessage mailMessage) {

this.mailMessage = mailMessage;

}

public MailSender getMailSender() {

return mailSender;

}

public void setMailSender(MailSender mailSender) {

this.mailSender = mailSender;

}

public void sendMail() {

SimpleMailMessage message = new SimpleMailMessage(mailMessage);

//设置email内容,

message.setText("测试Spring 发送Email.");

try {

mailSender.send(message);

} catch (MailException e) {

// TODO Auto-generated catch block

System.out.println("O . 发送Email失败了....");

e.printStackTrace();

}

}

}

TestApp.java

代码如下

package test.mail;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestApp {

public static void main(String[] args) {

// TODO Auto-generated method stub

ApplicationContext context = new ClassPathXmlApplicationContext(

"test/mail/mail.xml");

TestSenderMail sender = (TestSenderMail) context

.getBean("testMailSender");

sender.sendMail();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值