public class mail
{ private String pop3Server="";
private String smtpServer=""; private String srcMailAddr="";
private String user="";
private String password=""; public mail()
{
}
public boolean getConfig(){ this.pop3Server="pop.163.com";
this.smtpServer="smtp.163.com"; this.srcMailAddr="cup209@163.com";
this.user="cup209";
this.password="******"; return true;
}
public boolean checkMailAddr(String mailAddr){
if(null==mailAddr){
return false;
}
return mailAddr.matches("^[a-z0-9A-Z_]{1,}@[a-z0-9A-Z_]{1,}$");
}
public boolean send(String dstMailAddr,String subject,String content){ if(checkMailAddr(dstMailAddr)){
System.out.print("send mail fail:dst mail addr error");
return false;
}
try
{
this.getConfig();
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host", this.smtpServer); //smtp主机名。
props.put("mail.smtp.user",this.srcMailAddr); //发送方邮件地址。
props.put("mail.smtp.password",this.password); //邮件密码。
PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
PasswordAuthentication pop = popA.performCheck(this.user,this.password); //填写用户名及密码
sendMailSession = Session.getInstance(props, popA);
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(this.srcMailAddr));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(dstMailAddr)); //接收方邮件地址
newMessage.setSubject(Tool.convertGBK2UTF8(subject));
newMessage.setSentDate(new Date());
String mailContent=content;
try{
newMessage.setText(Tool.gbToUtf8(mailContent)); //邮件正文
}catch(Exception e){}
//newMessage.setContent(content,"text/html;charset=GBK");
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage); }
catch (MessagingException ex)
{
ex.printStackTrace();
return false;
}
return true;
} public static void main(String[] args)
{
mail sml = new mail();
sml.send("cup209@163.com","测试邮件","<a href='http://www.163.com'>测试邮件内容</a>");
} public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator(){}
public PasswordAuthentication performCheck(String user,String pass){
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
} }
}

java Email发送及中文乱码处理。的更多相关文章

  1. 解决Java保存到数据库中文乱码问题,加useUnicode=true&characterEncoding=UTF-8

    Java保存到数据库中文乱码, 解决方法如下: 我们在连接MySQL数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8,但是问什 ...

  2. 关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)

    从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了,但近日一个基础项目(实在是太基础,不能用硕大繁琐的Spring), 碰到了用java.util.Properties读取中文内容(UT ...

  3. [Java Web]Struts2解决中文乱码问题

    1.设置struts的字符编码,能够在struts.xml中添加下面代码: <constant name="struts.i18n.encoding" value=" ...

  4. java压缩zip文件中文乱码问题(转——作者:riching)

    本人遇到了同样的问题,用了以下方案,奇迹般的解决了.我很纳闷为什么,经理说:好读书,不求甚解,不要问为什么... 用java来打包文件生成压缩文件,有两个地方会出现乱码 1.内容的中文乱码问题,这个问 ...

  5. android客户端向服务器发送请求中文乱码的问

    android客户端向服务器发送请求的时候,并将参数保存到数据库时遇到了中文乱码的问题: 解决方法: url = "http://xxxx.com/Orders/saveorder.html ...

  6. java压缩zip文件中文乱码问题

    用java来打包文件生成压缩文件,有两个地方会出现乱码 1.内容的中文乱码问题,这个问题网上很多人给出了解决方法,两种:修改sun的源码:使用开源的类库org.apache.tools.zip.Zip ...

  7. 解决java图形界面label中文乱码

    第一:在你的具有main函数的类也即你应用运行的主类上点击右键,选择Run As中的Run Configurations,如下图:java,awt,中文方框,中文乱码第二,在Arguments标签下的 ...

  8. 通过Java创建XML(中文乱码已解决)

    package com.zyb.xml; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.Ou ...

  9. java压缩文件出现中文乱码问题

    在项目中需要压缩文件下载,做完了发现有中文乱码问题,终于明白了. 引入ant.jar包 import org.apache.tools.zip.ZipEntry;   import org.apach ...

随机推荐

  1. jsp网站与discuz论坛用户同步

    需求分析: 要想实现A(jsp网站)和B(discuz论坛)的同步,这里说的同步指的是 在AB网站任意一方注册之后在另一方都可以直接登录 AB两网站之间的用户登陆状态是同步的,在任意一方登录后,另一方 ...

  2. POJ2192 - Zipper(区间DP)

    题目大意 给定三个字符串s1,s2,s3,判断由s1和s2的字符能否组成字符串s3,并且要求组合后的字符串必须是s1,s2中原来的顺序. 题解 用dp[i][j]表示s1的前i个字符和s2的前j个字符 ...

  3. A Tour of Go The new function

    The expression new(T) allocates a zeroed T value and returns a pointer to it. var t *T = new(T) or t ...

  4. hdoj 5112 A Curious Matt

    A Curious Matt Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others) ...

  5. IBOutlet & IBAction

    IBOutlet UILabel *label; 这个label在Interface Builder里被连接到一个UILabel.此时,这个label的retainCount为2. 所以,只要使用了I ...

  6. Hadoop与分布式开发

        hadoop上的并行应用程序开发是基于MapReduce编程框架的,MapReduce编程模型的原理是:利用一个输入的key/value对集合来产生一个输出的key/value对集合. Map ...

  7. [React] React Fundamentals: Add-on ClassSet() for ClassName

    To get the add-ons, use react-with-addons.js (and its minified counterpart) rather than the common r ...

  8. C# Attribute (上)——Attribute初体验

      原始出处 .作者信息和本声明.否则将追究法律责任.http://liutiemeng.blog.51cto.com/120361/29201 小序:          注意:本次小序颇长而且没什么 ...

  9. 局域网动态ip

    1. 局域网IP对网速没有任何影响.点“开始”“设置”进入“网络连接” 右击“本地连接”选择“属性”选中“Internet协议(TCP/IP)” 在下面的一些按钮中点“属性”,之后你可以设置局域网IP ...

  10. tarball文件安装的大概流程

    ./configure这个步骤就是在创建 Makefile 这个文件罗!通常程序开发者会写一支 scripts 来检查你的 Linux 系统.相关的软件属性等等,这个步骤相当的重要, 因为未来你的安装 ...