java编写小型的局域网邮件发送

java编写小型的局域网邮件发送,第1张

我给你提供一个我在项目里面实际使用的代码
这是我基于一个网上的代码自己修改封装过来的
你可以参考一下
/
  
  @author Sglee
  
 /
public class SimpleMail {

private static String encode = null;
static {
if ("\\"equals(Fileseparator)) {
encode = "GBK";
} else {
encode = "UTF-8";
}
}

/
  以文本格式发送邮件
  
  @param mailInfo
  @return
 /
public static boolean sendTextMail(MailInfo mailInfo) {
for (int i = 0; i < 3; i++) {
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties properties = mailInfogetProperties();
if (mailInfoisValidate()) {
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfogetUsername(),
mailInfogetPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = SessiongetDefaultInstance(properties,
authenticator);
if (mailInfoisDebug()) {
sendMailSessionsetDebug(true);
}
try {
Message mailMessage = new MimeMessage(sendMailSession);// 根据session创建一个邮件消息
Address from = new InternetAddress(mailInfogetFromAddress());// 创建邮件发送者地址
mailMessagesetFrom(from);// 设置邮件消息的发送者
// Address to = new InternetAddress(mailInfogetToAddress());//
// 创建邮件的接收者地址
// mailMessagesetRecipient(MessageRecipientTypeTO, to);//
// 设置邮件消息的接收者
mailMessagesetRecipients(MessageRecipientTypeTO,
wrapAddress(mailInfogetToAddress()));
// InternetAddress ms = new
// InternetAddress(mailInfogetMsAddress());
// mailMessagesetRecipient(MessageRecipientTypeBCC, ms); //
// 密送人
mailMessagesetRecipients(MessageRecipientTypeBCC,
wrapAddress(mailInfogetMsAddress()));
mailMessagesetSubject(mailInfogetSubject());// 设置邮件消息的主题
mailMessagesetSentDate(new Date());// 设置邮件消息发送的时间
// mailMessagesetText(mailInfogetContent());//设置邮件消息的主要内容
// MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
MimeBodyPart messageBodyPart = new MimeBodyPart();// 创建一个包含附件内容的MimeBodyPart
// 设置HTML内容
messageBodyPartsetContent(mailInfogetContent(),
"text/html; charset=" + encode);
mainPartaddBodyPart(messageBodyPart);
// 存在附件
String[] filePaths = mailInfogetAttachFileNames();
if (filePaths != null && filePathslength > 0) {
for (String filePath : filePaths) {
messageBodyPart = new MimeBodyPart();
File file = new File(filePath);
if (fileexists()) {// 附件存在磁盘中
FileDataSource fds = new FileDataSource(file);// 得到数据源
messageBodyPart
setDataHandler(new DataHandler(fds));// 得到附件本身并至入BodyPart
messageBodyPartsetFileName("=" + encode + "B"
+ filegetName());// 得到文件名同样至入BodyPart
mainPartaddBodyPart(messageBodyPart);
}
}
}
// 将MimeMultipart对象设置为邮件内容
mailMessagesetContent(mainPart);
Transportsend(mailMessage);// 发送邮件
return true;
} catch (Exception e) {
eprintStackTrace();
try {
javautilconcurrentTimeUnitSECONDSsleep(5);
} catch (Exception e2) {
e2printStackTrace();
}
}
}
return false;
}
/
  将string[]包装成EmailAddress
  @param mailInfo
  @return
  @throws AddressException
 /
private static Address [] wrapAddress(String[] adds) throws AddressException {
// String[] adds = mailInfogetToAddress();
if(adds == null || addslength == 0){
return null;
}
Address []to = new Address[addslength];
for(int i = 0;i<addslength;i++){
to[i]=new InternetAddress(adds[i]);
}
return to;
}
/
  以HTML格式发送邮件
  
  @param mailInfo
  @return
 /
public static boolean sendHtmlMail(MailInfo mailInfo) {
for (int i = 0; i < 3; i++) {

// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties properties = mailInfogetProperties();
if (mailInfoisValidate()) {
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfogetUsername(),
mailInfogetPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = SessiongetDefaultInstance(properties,
authenticator);
if (mailInfoisDebug()) {
sendMailSessionsetDebug(true);
}
try {
Message mailMessage = new MimeMessage(sendMailSession);// 根据session创建一个邮件消息
Address from = new InternetAddress(mailInfogetFromAddress());// 创建邮件发送者地址
mailMessagesetFrom(from);// 设置邮件消息的发送者
// Address to = new InternetAddress(mailInfogetToAddress());//
// 创建邮件的接收者地址
// mailMessagesetRecipient(MessageRecipientTypeTO, to);//
// 设置邮件消息的接收者
mailMessagesetRecipients(MessageRecipientTypeTO,
wrapAddress(mailInfogetToAddress()));
// InternetAddress ms = new
// InternetAddress(mailInfogetMsAddress());
// mailMessagesetRecipient(MessageRecipientTypeBCC, ms); //
// 密送人
mailMessagesetRecipients(MessageRecipientTypeBCC,
wrapAddress(mailInfogetMsAddress()));
mailMessagesetSubject(mailInfogetSubject());// 设置邮件消息的主题
mailMessagesetSentDate(new Date());// 设置邮件消息发送的时间
// MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
MimeBodyPart messageBodyPart = new MimeBodyPart();// 创建一个包含HTML内容的MimeBodyPart
// 设置HTML内容
messageBodyPartsetContent(mailInfogetContent(),
"text/html; charset=" + encode);
mainPartaddBodyPart(messageBodyPart);
// 存在附件
String[] filePaths = mailInfogetAttachFileNames();
if (filePaths != null && filePathslength > 0) {
sunmiscBASE64Encoder enc = new sunmiscBASE64Encoder();
for (String filePath : filePaths) {
messageBodyPart = new MimeBodyPart();
File file = new File(filePath);
if (fileexists()) {// 附件存在磁盘中
FileDataSource fds = new FileDataSource(file);// 得到数据源
messageBodyPart
setDataHandler(new DataHandler(fds));// 得到附件本身并至入BodyPart
messageBodyPartsetFileName("=" + encode + "B"
+ encencode(EmailFileNameConvertchangeFileName(filegetName())getBytes())
+ "=");// 得到文件名同样至入BodyPart
mainPartaddBodyPart(messageBodyPart);
}
}
}
// 将MimeMultipart对象设置为邮件内容
mailMessagesetContent(mainPart);
Transportsend(mailMessage);// 发送邮件
return true;
} catch (Exception e) {
eprintStackTrace();
try {
javautilconcurrentTimeUnitSECONDSsleep(5);
} catch (Exception e2) {
e2printStackTrace();
}
}

}
return false;
}
}
/
  封装邮件的基本信息
  
  @author Sglee
  
 /
public class MailInfo implements Serializable{
/
  
 /
private static final long serialVersionUID = -3937199642590071261L;
private String mailServerHost;// 服务器ip
private String mailServerPort;// 端口
private long timeout;// 超时时间
private String fromAddress;// 发送者的邮件地址
private String[] toAddress;// 邮件接收者地址
private String[] msAddress;// 密送地址
private String username;// 登录邮件发送服务器的用户名
private String password;// 登录邮件发送服务器的密码
private boolean validate = false;// 是否需要身份验证
private String subject;// 邮件主题
private String content;// 邮件内容
private String[] attachFileNames;// 附件的文件地址
private boolean debug;// 调试模式
public Properties getProperties() {
Properties p = new Properties();
pput("mailsmtphost", thismailServerHost);
pput("mailsmtpport", thismailServerPort);
pput("mailsmtpauth", validate  "true" : "false");
pput("mailsmtptimeout", thistimeout);
return p;
}
public String getMailServerHost() {
return mailServerHost;
}
public void setMailServerHost(String mailServerHost) {
thismailServerHost = mailServerHost;
}
public String getMailServerPort() {
return mailServerPort;
}
public void setMailServerPort(String mailServerPort) {
thismailServerPort = mailServerPort;
}
public String getFromAddress() {
return fromAddress;
}
public void setFromAddress(String fromAddress) {
thisfromAddress = fromAddress;
}
public String[] getToAddress() {
return toAddress;
}
public void setToAddress(String[] toAddress) {
thistoAddress = toAddress;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
thisusername = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
thispassword = password;
}
public boolean isValidate() {
return validate;
}
public void setValidate(boolean validate) {
thisvalidate = validate;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
thissubject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
thiscontent = content;
}
public String[] getAttachFileNames() {
return attachFileNames;
}
public void setAttachFileNames(String[] attachFileNames) {
thisattachFileNames = attachFileNames;
}
public void setMsAddress(String[] msAddress) {
thismsAddress = msAddress;
}
public String[] getMsAddress() {
return msAddress;
}
public void setDebug(boolean debug) {
thisdebug = debug;
}
public boolean isDebug() {
return debug;
}
public void setTimeout(long timeout) {
thistimeout = timeout;
}
public long getTimeout() {
return timeout;
}
}
public class MyAuthenticator extends Authenticator {
private String username = null;
private String password = null;
public MyAuthenticator() {
};
public MyAuthenticator(String username, String password) {
thisusername = username;
thispassword = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
注意一下:
Myeclipse自带的JavaEE5jar和java mail会发生冲突
找到ME下的javeee包
D:\MyEclipse 85\Common\plugins\comgenuitececlipsej2eedtcore_850me201003231033\data\libraryset\EE_5\javaeejar
用rar等解压工具解开javaeejar,删除里面的javax\mail文件夹(可以先备份javaeejar)
也即,以后都不能使用javaeejar里面的邮件api发送邮件了

接收邮件服务器(POP3服务器):pop3livecom
Incoming Server POP Port: 995接收邮件服务器的POP端口:995
Incoming Server POP SSL Encryption: Yes (On or Required)接收邮件服务器的POP SSL加密:是(开或必填)
Outgoing Server (SMTP Server): smtplivecom发送服务器(SMTP服务器):smtplivecom
Outgoing Server SMTP Port: 25发送服务器SMTP端口:25
Outgoing Server Authentication: Yes (On – Use POP username and password or Hotmail credentials)发送服务器身份验证:是

不知有帮助没有了
<%@ page
import=" javaxmail, javaxmailinternet, javaxactivation,javautil"
%>
<html>
<head>
<TITLE>JSP meets JavaMail, what a sweet combo</TITLE>
</HEAD>
<BODY>
<%
try{
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
sendMailSession = SessiongetInstance(props, null);
propsput("mailsmtphost", "smtpjspinsidercom");
Message newMessage = new MimeMessage(sendMailSession);
newMessagesetFrom(new InternetAddress(requestgetParameter("from")));
newMessagesetRecipient(MessageRecipientTypeTO, new InternetAddress(requestgetParameter("to")));
newMessagesetSubject(requestgetParameter("subject"));
newMessagesetSentDate(new Date());
newMessagesetText(requestgetParameter("text"));
transport = sendMailSessiongetTransport("smtp");
transportsend(newMessage);
%>
<P>Your mail has been sent</P>
<%
}
catch(MessagingException m)
{
outprintln(mtoString());
}
%>
</BODY>
</HTML>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12604175.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存