java发邮件(word2003)
word文档怎么发邮件

word文档怎么发邮件
word文档怎么发邮件
如何用word发邮件,word文档怎么发邮件word文档怎么发邮件?
如何用word发邮件?下面以word2003文档发邮件为例,演示给各位朋友看,更方便理解!希望能够帮助到大家!
怎么用word2003文档发邮件?
Word2003:文件→ 发送→ 邮件接收人
然后把word2003文档存档,再开QQ或别的如126邮箱来就可以发的。
1.首先打开WORD文档,选择“文件”——“新建”,在WORD右方选择“电子邮件”:
2.选择后,会弹出一个文档,在此填写相关信息:
3.写好后,直接点击“发送”即可。
是不是很简单咧!赶紧去动手试试看吧!
操作总结:当用户想发一封电子邮件时(在确认计算机已经正常连接Internet的前提下),单击“文件”菜单栏,选择“新建”命令,在“常用”选项卡中选择“电子邮件正文”,单击“确定”。
这时会弹出电子邮件编辑界面,文档默认名字为“无标题的邮件”,在“收件人”后的空格中填对方的邮件地址,如果邮件不止想发给一个人,可以在“收件人“或“抄送“栏里添上其他人的'电子邮件地址,注意每两个地址间用逗号隔开。
在主题栏上填入邮件的标题,接下来就可以在主题下的空白文档处编写电子邮件正文了,写完后单击“收件人”上方的“发送”按钮,你的E--mail就发送出去了。
【word文档怎么发邮件】。
java 邮件发送失败处理方案

java 邮件发送失败处理方案作为一名职业写手,我将为您详细阐述Java邮件发送失败的处理方案。
在实际应用中,邮件发送失败可能会给工作和生活带来诸多不便。
以下我们将分析失败原因及相应的解决方案,帮助您轻松应对邮件发送问题。
一、问题概述邮件发送失败,通常表现为邮件无法送达收件人手中。
这种情况可能是由多种原因导致的,我们需要针对具体原因进行排查和处理。
二、失败原因分析1.邮件服务器问题:邮件服务器出现故障或维护,可能导致邮件发送失败。
2.网络连接问题:网络不稳定或连接中断,会影响邮件的正常发送。
3.邮件账号问题:发件人或收件人的邮件账号设置有误,如密码错误、邮箱空间不足等。
4.邮件内容问题:邮件中含有敏感词汇或超大附件,可能导致邮件被拦截或拒绝。
5.发送频率问题:短时间内发送大量邮件,可能会触发邮件服务器的防垃圾邮件机制,导致发送失败。
三、解决方案1.检查邮件服务器:确认邮件服务器是否正常运行,如有问题,等待服务器恢复正常或联系运维人员进行处理。
2.检查网络连接:确保网络稳定且连接正常,修复网络故障。
3.检查邮件账号信息:核实发件人及收件人的邮件账号、密码等信息是否正确,清理邮箱空间,确保邮箱正常使用。
4.优化邮件内容:避免使用敏感词汇,减小附件大小,保证邮件内容合规。
5.调整发送频率:避免短时间内大量发送邮件,可采用批量发送或分批发送的方式。
6.使用第三方邮件发送服务:考虑使用第三方邮件发送平台,如SendGrid、Mailgun等,提高邮件发送成功率。
四、失败处理流程当发现邮件发送失败时,请按照以下流程进行处理:1.分析失败原因:根据错误提示或邮件服务器日志,初步判断失败原因。
2.排查问题:针对原因进行分析,逐一排查相关因素。
3.解决问题:找到问题后,及时采取相应措施进行解决。
4.测试发送:解决问题后,重新发送邮件并观察发送结果。
5.优化方案:总结失败经验,优化邮件发送方案,预防类似问题再次发生。
word2003邮件合并及域代码控制

word2003邮件合并及域代码控制word2003邮件合并中,当数据有小数点时,合并后,数据变成无限小数,例如2.35会变成2.3499999999999999999;5.6会变成5.5999999999999。
回复:是office系统在数据传输和转换过程中不可避免的误差。
这只能通过设置域格式来消除,比如将模板中插入的域(涉及到小数点的)切换到域代码格式后,进行格式控制。
例如,域{MERGEFIELD 价格\# $#,##0.00 } 中的开关\# $#,##0.00 可使结果显示为“$4,455.70”。
如果域的结果不是数字,则该开关不起作用。
详情请见/zh-cn/help/HP0518********.aspx.指定结果中必须显示的数字位数。
如果在结果中该位置没有数字,则Word 显示0。
例如,{ = 4 + 5 \# 00.00 } 显示为“09.00”。
#指定结果中必须显示的数字位数。
如果在结果中该位置没有数字,则Word 显示空格。
例如,{ = 9 + 6 \# $### } 显示为“$ 15”。
x放弃占位符“x”左边的数字。
如果占位符在小数点右边,Word 会将结果舍入到该位。
例如:{ = 111053 + 111439 \# x## } 显示为“492”。
{ = 1/8 \# 0.00x } 显示为“0.125”。
{ = 3/4 \# .x } 显示为“.8”。
. (小数点)确定小数点的位置。
例如,{ = SUM(ABOVE) \# $###.00 } 显示为“$495.47”。
注释请使用在Microsoft Windows“控制面板”中区域设置中所指定的小数点符号。
,(数字分组符)每三个数字间用此分隔符分开。
例如,{ = NetProfit \# $#,###,### } 显示为“$2,456,800”。
注释请使用在Microsoft Windows“控制面板”中区域设置中所指定的数字分组符号。
javamail收发邮件(带附件,正文带图)

1.邮件1.1 邮件组成部分如果是新邮件就获取,并解析它;邮件是由邮件头和邮件体组成,在邮件头中主要包含了收件人、发件人、主题等等基础信息。
而邮件体中就包括了邮件的正文和附件等内容信息。
下图就是pop3协议下,邮件的大致内容。
1.2 发送邮件(带附件、正文带图片)QQ邮箱为例:需要QQ账号和QQ登录第三方客户端时,密码框的“授权码”(相当于密码)授权码如下获取:代码如下:public class JavaMailboxAttachment {private MimeMessage message;private Session session;private String mailHost = "";private String mailAuth = "";private String mailPort = "";private String sender_username = "";private String sender_password = "";//定义一个Properties 用于存放信息private Properties properties = new Properties();//-------------------------------发信箱---------------------------------------------public JavaMailboxAttachment(String email_type) {try {properties.put("mail.smtp.host",""); //发送邮件服务器//端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587properties.put("mail.smtp.port", "587"); //发送邮件端口号properties.put("mail.smtp.auth", "true");// 此处填写你的账号properties.put("er", "xxxxxxxxx@");// 此处的密码就是前面说的16位STMP授权码properties.put("mail.password", "xxxxxxxxxxxxxxxx");this.mailHost = properties.getProperty("mail.smtp.host");this.mailAuth = properties.getProperty("mail.smtp.auth");this.mailPort = properties.getProperty("mail.smtp.port");this.sender_username = properties.getProperty("er");this.sender_password = properties.getProperty("mail.password");} catch (Exception e) {e.printStackTrace();}// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {// 用户名、密码String userName = properties.getProperty("er");String password = properties.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};session = Session.getInstance(properties,authenticator); //用户验证message = new MimeMessage(session); //将验证成功的session信息,创建一个message 对象。
Java实现outlook服务的邮件发送

Java实现outlook服务的邮件发送依赖<!-- https:///artifact/javax.mail/mail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>POP3接收String USER_NAME ="*****@";String PASSWORD = "******";public static void receivepop3Email() {String host = "";// change accordinglyString mailStoreType = "pop3";String popPort = "995";Store store = null;// 配置连接信息Properties properties = new Properties();properties.put("mail.store.protocol", mailStoreType);properties.put("mail.pop3.host", host);properties.put("mail.pop3.port", popPort);properties.put("mail.pop3.starttls.enable", "true");try {Session emailSession = Session.getDefaultInstance(properties);//打开调式模式,可看到邮件发送过程中各步骤的详细信息// emailSession.setDebug(true);store = emailSession.getStore("pop3s");store.connect(host, USER_NAME, PASSWORD);Folder emailFolder = store.getFolder("INBOX");emailFolder.open(Folder.READ_ONLY);Message[] messages = emailFolder.getMessages();for (Message msg:messages) {System.out.println(msg.getSubject());}emailFolder.close(true);store.close();} catch (NoSuchProviderException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}finally {if(null != store){try {store.close();} catch (MessagingException e) {e.printStackTrace();}}}}IMAP接收String USER_NAME ="*****@";String PASSWORD = "******";public static void receiveimapEmail() {String host = "";// change accordinglyString mailStoreType = "imap";String popPort = "993";try {// 配置连接信息Properties properties = new Properties();properties.put("mail.store.protocol", mailStoreType);properties.put("mail.imap.host", host);properties.put("mail.imap.port", popPort);properties.put("mail.imap.starttls.enable", "true");Session emailSession = Session.getDefaultInstance(properties);// emailSession.setDebug(true);Store store = emailSession.getStore("imaps");store.connect(host, USER_NAME, PASSWORD);Folder emailFolder = store.getFolder("INBOX");emailFolder.open(Folder.READ_ONLY);Message[] messages = emailFolder.getMessages();for (Message msg:messages) {System.out.println(msg.getSubject());}emailFolder.close(true);store.close();} catch (NoSuchProviderException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}}SMTP发送static String USER_NAME ="****@";static String PASSWORD = "****";public static boolean sendSMTPMail(String to, String text, String title) {String host = "";String mailStoreType = "smtp";String popPort = "587";final Properties props = new Properties();props.put("mail.smtp.auth", "true");props.put("mail.smtp.host", host);props.put("mail.store.protocol", mailStoreType);props.put( "mail.smtp.port", popPort );//开启SSLprops.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.socketFactory.port",popPort);props.put("mail.smtp.socketFactory.fallback","false");try {Session session = Session.getDefaultInstance(props, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(USER_NAME, PASSWORD);//账号密码}});session.setDebug(true);// 创建邮件消息MimeMessage message = new MimeMessage(session);// 设置发件⼈InternetAddress form = new InternetAddress(USER_NAME);message.setFrom(form);// 设置收件⼈InternetAddress toAddress = new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 设置邮件标题message.setSubject(title);// 设置邮件的内容体message.setContent(text, "text/html;charset=UTF-8");// 发送邮件Transport.send(message);return true;} catch (Exception e) {e.printStackTrace();}return false;}插曲: SMTP发送邮件时,第⼀次发送可能会收到如下的报错:OutboundSpamException; Failed to process message due to a permanent exception with message WASCL UserAction verdict is not None 在⽹上查到这是邮箱⼚商的安全策略,出现此异常的同时⼚商会给你发送⼀封确认邮件,只要你登录邮箱并激活该邮件即可使⽤SMTP 发送邮件的功能,邮件内容⼤致如下:。
发邮件格式范文(必备3篇)

发邮件格式范文第1篇1、电子邮件的发送和接收电子邮件在Internet上发送和接收的原理可以很形象地用我们日常生活中邮寄包裹来形容:当我们要寄一个包裹时,我们首先要找到任何一个有这项业务的邮局,在填写完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。
同样的,当我们发送电子邮件时,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能完成。
2、电子邮件地址的构成电子邮件地址的格式由三部分组成。
第一部分“USER”代表用户信箱的帐号,对于同一个邮件接收服务器来说,这个帐号必须是唯一的;第二部分“@”是分隔符;第三部分是用户信箱的邮件接收服务器域名,用以标志其所在的位置。
对于世界上第一封电子邮件(e-mail),根据资料,现在有两种说法:第一种说法1969年 10月世界上的第一封电子邮件是由计算机科学家LeonardK.教授发给他的同事的一条简短消息。
发邮件格式范文第2篇电子邮件格式范文电子邮件伴随着电子计算机的普及,成为当今时代人际交流的重要的文书样式。
它既可用于处理公务,还可用于私人交往。
起着沟通信息、交流感情的作用。
使用电子邮件进行对外联络,不仅安全保密,节省时间,不受篇幅的限制,传输速度快,能够跨越时空,而且还可以大大地降低通信费用,它为信息时代人们的快节奏、高效率信息传递提供了便利与可能。
(二)电子邮件的撰写1.电子邮件的.结构与内容电子邮件由邮件头和正文结构而成。
邮件头包括收件人、抄送人地址、主题(邮件名称)、发件人地址等内容。
正文包括三部分内容。
(1)信头。
第一行顶格写对收信人的称呼。
(2)信体。
开门见山、直接人题,告知事宜,传递信息,分享情绪,可自由发挥。
(3)信尾。
写明发邮件人姓名、发邮件日期。
2.电子邮件的撰写要求(1)主题要明确。
使用java发送短信和邮件

使⽤java发送短信和邮件(1)发送短信1.1在中国⽹建SMS上注册⼀个⽤户名,并获取短信密钥(⾮登录密码)1.2代码import java.io.IOException;import mons.httpclient.Header;import mons.httpclient.HttpClient;import mons.httpclient.HttpException;import ValuePair;import mons.httpclient.methods.PostMethod;public class SendMessage {/*** @param args* @throws IOException* @throws HttpException*/public static void main(String[] args) throws HttpException, IOException {HttpClient client=new HttpClient();PostMethod post=new PostMethod("");//在头⽂件中设置转码post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");NameValuePair[] data={new NameValuePair("Uid","⽹建注册⽤户名"),new NameValuePair("Key","短信密钥"),new NameValuePair("smsMob","接收号码"),new NameValuePair("smsText","短信内容")};post.setRequestBody(data);client.executeMethod(post);Header[] headers=post.getRequestHeaders();int statusCode=post.getStatusCode();System.out.println("statusCode:"+statusCode);for(Header h:headers){System.out.println(h.toString());}String result=new String(post.getResponseBodyAsString().getBytes("gbk"));System.out.println(result);post.releaseConnection();}1.3注意需要引⼊包:commons-logging-1.1.1.jar、commons-httpclient-3.1.jar、commons-codec-1.4.jar1.4StatusCode说明:短信发送后返回值说 明-1没有该⽤户账户-2接⼝密钥不正确不是账户登陆密码-21MD5接⼝密钥加密不正确-3短信数量不⾜-11该⽤户被禁⽤-14短信内容出现⾮法字符-4⼿机号格式不正确-41⼿机号码为空-42短信内容为空-51短信签名格式不正确接⼝签名格式为:【签名内容】-6IP限制⼤于0短信发送数量2、发邮件2.1smtp验证类import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;public class SmtpAuthenticator extends Authenticator {String username=null;String password=null;public SmtpAuthenticator(String name,String password) {super();ername=name;this.password=password;}public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication(ername, this.password);}}2.2发邮件的⼯具类import java.util.Date;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;public class JavaMailSendUtil {public void sendMail(String subject,String from,String[] to,String test,String[] filenames,String mineType){try {Properties props=new Properties();String smtp="";//设置发送邮件所⽤到的smtpString servername="188********@";String serverpassword="************";Session mailSession=null;MimeMessage mimeMsg=null;props=ng.System.getProperties();props.put("mail.smtp.host", smtp);//设置SMTP主机props.put("mail.smtp.auth", "true");//是否到服务器⽤户名和密码验证//到服务器验证发送的⽤户名和密码是否正确SmtpAuthenticator myEmailAuther=new SmtpAuthenticator(servername, serverpassword);//设置邮件会话注意这⾥讲认证信息放进了Session的创建参数⾥mailSession=javax.mail.Session.getInstance(props,(Authenticator)myEmailAuther);//设置传输协议javax.mail.Transport transport=mailSession.getTransport("smtp");//设置from、to等信息mimeMsg=new javax.mail.internet.MimeMessage(mailSession);if(from!=null&&!from.equals("")){InternetAddress sendFrom=new InternetAddress(from);mimeMsg.setFrom(sendFrom);//设置发送⼈地址}InternetAddress[] sendTo=new InternetAddress[to.length];for(int i=0;i<to.length;i++){System.out.println("发送到:"+to[i]);sendTo[i]=new InternetAddress(to[i]);}mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo); mimeMsg.setSubject(subject,"gb2312");MimeBodyPart messageBodyPart1=new MimeBodyPart();messageBodyPart1.setContent(test,mineType);//附件传输格式Multipart multipart=new MimeMultipart();multipart.addBodyPart(messageBodyPart1);for(int i=0;i<filenames.length;i++){MimeBodyPart messageBodyPart2=new MimeBodyPart();String filename=filenames[i].split(";")[0];System.out.println(filename);String displatname=filenames[i].split(";")[1];//得到数据源FileDataSource fds=new FileDataSource(filename);//BodyPart添加附件本⾝messageBodyPart2.setDataHandler(new DataHandler(fds));//BodyPart添加附件⽂件名messageBodyPart2.setFileName(MimeUtility.encodeText(displatname));multipart.addBodyPart(messageBodyPart2);}mimeMsg.setContent(multipart);//设置信件头的发送⽇期mimeMsg.setSentDate(new Date());mimeMsg.saveChanges();//发送邮件Transport.send(mimeMsg);transport.close();System.out.println("消息发送成功");} catch (Exception e) {// TODO: handle exception}}}2.3测试类public class TestMailSend {/*** @param args*/public static void main(String[] args) {String title="测试邮件";String from="188********@";String sendTo[]={"1245226995@","jlsong186@"};String content="just test java send mail<br><a href=\"\">My blog</a>"; String fileNames[]={"F:\\068.JPG;068.JPG"};JavaMailSendUtil test=new JavaMailSendUtil();try {test.sendMail(title, from, sendTo, content, fileNames, "text/html;charset=gb2312");} catch (Exception e) {e.printStackTrace();}}}。
java生成word的几种方案

java⽣成word的⼏种⽅案1、 Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建⼀座桥梁。
使⽤Jacob⾃带的DLL动态链接库,并通过JNI的⽅式实现了在Java平台上对COM程序的调⽤。
DLL动态链接库的⽣成需要windows平台的⽀持。
2、 Apache POI包括⼀系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式⽂件,可以通过这些API在Java中读写Excel、Word等⽂件。
他的excel处理很强⼤,对于word还局限于读取,⽬前只能实现⼀些简单⽂件的操作,不能设置样式。
3、 Java2word是⼀个在java程序中调⽤ MS Office Word ⽂档的组件(类库)。
该组件提供了⼀组简单的接⼝,以便java程序调⽤他的服务操作Word ⽂档。
这些服务包括:打开⽂档、新建⽂档、查找⽂字、替换⽂字,插⼊⽂字、插⼊图⽚、插⼊表格,在书签处插⼊⽂字、插⼊图⽚、插⼊表格等。
填充数据到表格中读取表格数据,1.1版增强的功能:指定⽂本样式,指定表格样式。
如此,则可动态排版word⽂档。
4、 iText操作Excel还⾏。
对于复杂的⼤量的word也是噩梦。
⽤法很简单, 但是功能很少, 不能设置打印⽅向等问题。
5、 JSP输出样式基本不达标,⽽且要打印出来就更是惨不忍睹。
6、⽤XML做就很简单了。
Word从2003开始⽀持XML格式,⼤致的思路是先⽤office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后⽤java来解析FreeMarker模板并输出Doc。
经测试这样⽅式⽣成的word⽂档完全符合office标准,样式、内容控制⾮常便利,打印也不会变形,⽣成的⽂档和office中编辑⽂档完全⼀样。
7、补充⼀种⽅案,可以⽤类似ueditor的在线编辑器编辑word⽂档,在将html⽂件转换为xhtml⽂件,再转换为word。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
今天做了一个java发送邮件的小例子,总结一下,愿意和大家交换意见。
相关内容:1、要有两个邮箱(一个发送邮件,一个接收邮件)
2、下载两个jar包(mail-1.4.1.jar,activation-1.1.1.jar)
3、编写一个发送邮件的类(SendMail)
原理:程序利用发送邮件的账号(这里是a123456@和密码999999)去登录邮箱服务器(这里是)。
之后向另外一个邮箱(这里是123456@)发送一个邮件,邮件的标题和内容等可以在程序里面设定好
以下代码可以正确运行且发送邮件。
注意修改两个邮箱地址
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class SendMail {
private String host= ""; // smtp服务器 ,这里是网易126 邮箱服务器地址
private String user = "a123456"; // 用户名,即发送邮件邮箱
(a123456@)的名称
private String pwd= "999999"; // 密码,a123456@ 在 的登录密码
private String from = "a123456@"; // 发件人地址
private String to = "123456@"; // 收件人地址
private String subject = "hello"; // 邮件标题
public void setAddress(String from, String to, String subject) { this.from = from;
this.to = to;
this.subject = subject;
}
/**
*此方法可以不做修改,直接调用
*@param txt
*/
public void send(String txt) {
Properties props = new Properties();
// 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
props.put("mail.smtp.host", host);
// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
props.put("mail.smtp.auth", "true");
// 用刚刚设置好的props对象构建一个session
Session session = Session.getDefaultInstance(props);
// 有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使
// 用(你可以在控制台(console)上看到发送邮件的过程)
session.setDebug(true);
// 用session为参数定义消息对象
MimeMessage message = new MimeMessage(session);
try {
// 加载发件人地址
message.setFrom(new InternetAddress(from));
// 加载收件人地址
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 加载标题
message.setSubject(subject);
// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件 Multipart multipart = new MimeMultipart();
// 设置邮件的文本内容
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(txt);
multipart.addBodyPart(contentPart);
// 添加附件
//BodyPart messageBodyPart = new MimeBodyPart();
//DataSource source = new FileDataSource(affix);
// 添加附件的内容
//messageBodyPart.setDataHandler(new
DataHandler(source));
// 添加附件的标题
// 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码
//sun.misc.BASE64Encoder enc = new
sun.misc.BASE64Encoder();
//messageBodyPart.setFileName("=?GBK?B?"+
enc.encode(affixName.getBytes()) + "?=");
//multipart.addBodyPart(messageBodyPart);
// 将multipart对象放到message中
message.setContent(multipart);
// 保存邮件
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport("smtp");
// 连接服务器的邮箱
transport.connect(host, user, pwd);
// 把邮件发送出去
transport.sendMessage(message,
message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SendMail cn = new SendMail();
// 设置发件人地址、收件人地址和邮件标题
cn.setAddress("a123456@", "123456@", "helloss");
cn.send("hello余云峰");
}
}
注意会出现:
1、如果出现Exception in thread "main" ng.NoClassDefFoundError:
com/sun/mail/util/BASE64EncoderStream
解决办法:下载mail.jar包,添加到lib里就可以了~
2、如果你用myEclipse进行开发的话,运行时可能会出现以下的错误:
Exception in thread "main" ng.NoClassDefFoundError:
com/sun/mail/util/LineInputStream
解决方法:移除myEclipse自带的Java EE 5 Libraries包。
但你可能还需要用到EE包里的servlet 相关类,那可以从Tomcat的lib文件夹中复制servlet-api.jar到project中,用它来代替EE包,一切OK!
本例子下载使用的jar包有
1、mail-1.4.1.jar
2、activation-1.1.1.jar。