利用jMail免费的发送邮件(目前我只知道可以利用GMail服务器),一般的服务器都是要收取费用的,如163,如果有人知道还有其他的方法可以指导一下.
package com.easyjf.core.support;
import java.security.Security;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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 org.acegisecurity.providers.encoding.Md5PasswordEncoder;
//import com.easyjf.util.MD5;
/**
*
* 使用Gmail发送邮件(邮件内容为一个html页面)
*
* @author yx
*/
public class SendEmail
{
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private static final String USERNAME = "singandsuny";// 设定邮箱的用户名
private static final String PASSWORD = "123456";// 设定邮箱的密码
private static String TO_EMAIL = "";// 设定收件人的信箱
private static String SUBJECT = "";// 设定邮件标题
private static final String FROM = "sonofsucom";// 设定发件件的人
private static final String SMTP = "smtp.gmail.com";
private static String content = "";
public static String getContent(Map<String,String> map)
{
content = "<html>" +
"<head>" +
"<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />" +
"<title>好友推荐</title></head>" +
"<body>" +
"<p>恭喜你!收到邮件了!</p>" +
"<p><a href='http://www.eebbo.com' target='_blank'>益勃</a></p>" +
"</body>" +
"</html>";
return content;
}
public static void sender(Map<String,String> map) throws Exception
{
//设置要发送邮件的相关参数
SUBJECT = "你的益勃好友"+map.get("friendName")+"给你推荐的商品";
TO_EMAIL = map.get("toEmail").toString();
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
//获取邮件内容
getContent(map);
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", SMTP);
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
//认证
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USERNAME, PASSWORD);
}
});
//是否以调试模式运行
session.setDebug(true);
Message msg = new MimeMessage(session);
InternetAddress[] address = null;
// 设定发邮件的人
msg.setFrom(new InternetAddress(FROM));
// 设定收信人的信箱
address = InternetAddress.parse(TO_EMAIL, false);
msg.setRecipients(Message.RecipientType.TO, address);
// 设定信中的主题
msg.setSubject(SUBJECT);
// 设定送信的时间
//msg.setSentDate(new Date());
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
// 设定邮件内容的类型为 text/plain 或 text/html
mbp.setContent(content, "text/html;charset=GB2312");
mp.addBodyPart(mbp);
msg.setContent(mp);
//发送
Transport transport = session.getTransport("smtp");
transport.connect(SMTP, USERNAME, PASSWORD);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
}
// 测试
public static void main(String[] args) throws Exception {
//MD5加密
// Md5PasswordEncoder pwd = new Md5PasswordEncoder();
// System.out.println(pwd.encodePassword("123456", "我")+"ooo");
// pwd.isPasswordValid(arg0, arg1, arg2)
// MD5 d = new MD5();
// System.out.println(d.getMD5ofStr("827CCB0EEA8A706C4C34A16891F84E7B"));
// System.out.println(MD5.encode("12345")+"+++++");
// System.out.println(MD5.encode("827CCB0EEA8A706C4C34A16891F84E7B")+"--------");
Map<String, String> map = new HashMap<String,String>();
map.put("friendName", "yangxun");
map.put("toEmail", " singandsuny@163.com ");
sender(map);
System.out.println("邮件已经发送成功!");
}
}
package com.easyjf.core.support;
import java.security.Security;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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 org.acegisecurity.providers.encoding.Md5PasswordEncoder;
//import com.easyjf.util.MD5;
/**
*
* 使用Gmail发送邮件(邮件内容为一个html页面)
*
* @author yx
*/
public class SendEmail
{
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private static final String USERNAME = "singandsuny";// 设定邮箱的用户名
private static final String PASSWORD = "123456";// 设定邮箱的密码
private static String TO_EMAIL = "";// 设定收件人的信箱
private static String SUBJECT = "";// 设定邮件标题
private static final String FROM = "sonofsucom";// 设定发件件的人
private static final String SMTP = "smtp.gmail.com";
private static String content = "";
public static String getContent(Map<String,String> map)
{
content = "<html>" +
"<head>" +
"<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />" +
"<title>好友推荐</title></head>" +
"<body>" +
"<p>恭喜你!收到邮件了!</p>" +
"<p><a href='http://www.eebbo.com' target='_blank'>益勃</a></p>" +
"</body>" +
"</html>";
return content;
}
public static void sender(Map<String,String> map) throws Exception
{
//设置要发送邮件的相关参数
SUBJECT = "你的益勃好友"+map.get("friendName")+"给你推荐的商品";
TO_EMAIL = map.get("toEmail").toString();
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
//获取邮件内容
getContent(map);
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", SMTP);
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
//认证
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USERNAME, PASSWORD);
}
});
//是否以调试模式运行
session.setDebug(true);
Message msg = new MimeMessage(session);
InternetAddress[] address = null;
// 设定发邮件的人
msg.setFrom(new InternetAddress(FROM));
// 设定收信人的信箱
address = InternetAddress.parse(TO_EMAIL, false);
msg.setRecipients(Message.RecipientType.TO, address);
// 设定信中的主题
msg.setSubject(SUBJECT);
// 设定送信的时间
//msg.setSentDate(new Date());
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
// 设定邮件内容的类型为 text/plain 或 text/html
mbp.setContent(content, "text/html;charset=GB2312");
mp.addBodyPart(mbp);
msg.setContent(mp);
//发送
Transport transport = session.getTransport("smtp");
transport.connect(SMTP, USERNAME, PASSWORD);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
}
// 测试
public static void main(String[] args) throws Exception {
//MD5加密
// Md5PasswordEncoder pwd = new Md5PasswordEncoder();
// System.out.println(pwd.encodePassword("123456", "我")+"ooo");
// pwd.isPasswordValid(arg0, arg1, arg2)
// MD5 d = new MD5();
// System.out.println(d.getMD5ofStr("827CCB0EEA8A706C4C34A16891F84E7B"));
// System.out.println(MD5.encode("12345")+"+++++");
// System.out.println(MD5.encode("827CCB0EEA8A706C4C34A16891F84E7B")+"--------");
Map<String, String> map = new HashMap<String,String>();
map.put("friendName", "yangxun");
map.put("toEmail", " singandsuny@163.com
sender(map);
System.out.println("邮件已经发送成功!");
}
}