您的位置:首页 > 编程语言 > Java开发

如何用java文件发送邮件

2016-12-18 23:55 253 查看

获得邮箱发送邮件的权限

以163邮箱为例

1.开通stmp权限



2.设置授权码



发送邮件的函数

sendemail.java

使用163邮箱的服务器,即stmp.163.com;

import java.util.Date;
import java.util.Properties;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {
String host;
String username;
String password;
String fromAddr;
String toAddr;
String subject;
String content;
Address[] address;

public SendEmail()
{
host = "smtp.163.com";//设置为163的stmp
username = "";
password = "";
fromAddr = "@";
}

public boolean sendMail()
{
Properties prop;
Session session;
MimeMessage msg;

try
{
prop = new Properties();
prop.put("mail.smtp.host",host);
prop.put("mail.smtp.auth","true");

session = Session.getDefaultInstance(prop,null);
msg = new MimeMessage(session);

if(fromAddr == null || fromAddr.equals(""))
{
throw new Exception("起始邮箱空");
}
if(toAddr == null || toAddr.equals(""))
{
throw new Exception("目标邮箱空");
}

msg.setFrom(new InternetAddress(fromAddr));

String[] gods = toAddr.split("[,]");
System.out.println(toAddr);
System.out.println(gods.length);
address = new InternetAddress[gods.length];
for(int i=0;i<gods.length;i++){
address[i] = new InternetAddress(gods[i]);
}
msg.setRecipients(Message.RecipientType.TO,address);

msg.setSubject(subject,"GBK");

Multipart mp = new MimeMultipart();
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setContent(content,"text/html;charset=GBK");

mp.addBodyPart(mbpContent);
msg.setContent(mp,"text/html;charset=GBK");
msg.setSentDate(new Date());

Transport transport = session.getTransport("smtp");
transport.connect((String)prop.get("mail.smtp.host"),username,password);
transport.sendMessage(msg,msg.getRecipients(MimeMessage.RecipientType.TO));

transport.close();
return true;
}
catch(Exception e)
{
System.out.println(e);
return false;
}
}

// getter and setter
public String getPassword()
{
return password;
}

public void setPassword(String password)
{
this.password = password;
}

public String getHost()
{
return host;
}

public void setHost(String host)
{
this.host = host;
}

public String getUsername()
{
return username;
}

public void setUsername(String username)
{
this.username = username;
}

public String getFromAddr()
{
return this.fromAddr;
}

public void setFromAddr(String addr)
{
fromAddr = addr;
}

public String getToAddr()
{
return this.toAddr;
}

public void setToAddr(String addr)
{
toAddr = addr;
}

public String getSubject()
{
return subject;
}

public void setSubject(String sub)
{
subject = sub;
}

public String getContent()
{
return content;
}

public void setContent(String content)
{
this.content = content;
}
}


在外部java文件中配置以下内容:

send.setToAddr(addr);//目标邮箱
send.setFromAddr("182xxxxxxxx@163.com");//其实邮箱
send.setUsername("156xxxxxxxx@163.com");
send.setPassword("as123456");//授权码
send.setSubject("你是谁");//邮件主题,类型字符串
send.setContent("你能告诉我,你是谁吗");//邮件内容
send.sendMail();//发送邮件


目标邮箱的内容为以’,’隔开的多个邮箱地址,例如:“182xxxxxxxx@163.com,156xxxxxxxx@163.com,156xxxxxxxx@163.com”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 邮箱