java代码操作网易邮箱代发邮件功能的相关设置及实现 实用小功能
以163邮箱为代发邮件的测试对象,
1 注册邮箱 登录后
协议说明:
SMTP
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。
增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
通过网易邮箱的解读,我们可以发现 其添加了SMTP认证功能, 我们想要登录SMTP服务器 必须拥有网易提供的 授权码。
2 点击设置操作界面如下, 内容说明了《授权码》的作用,我们想代发邮件,就必须申请smtp服务器的授权码:
3 发送邮件函数
main{
String addresser = "sender@163.com";
String host= "smtp.163.com";
String mailName = "sender@163.com";
String mailAuthPass="授权码";
String toAddresses = "target_mail@qq.com";
}
发送功能:
/**
* 邮件发送JAVAX.MAIL核心发送方法
*
* @param host//smtp服务地址
* @param addresser//邮件发送者地址
* @param mailName//邮箱地址
* @param mailAuthPass //smtp邮箱验证密码 及我们上面申请的 授权码
* @param toAddresses//邮箱被发送地址
* @param subject//邮件标题
* @param context//邮件内容
* @return
*/
public boolean EmailSendHtmlType(String host,String addresser,String mailName, String mailAuthPass, String toAddresses,String subject, String context){
boolean result=false;
Properties p=new Properties();
p.put("mail.smtp.host", host);
p.put("mail.smtp.auth","true");
p.put("mail.transport.protocol", "smtp");
EmailAuthenticator ea=new EmailAuthenticator(mailName,mailAuthPass);
Session session=Session.getInstance(p,ea);
MimeMessage message=new MimeMessage(session);
try {
Address[] toAddress = InternetAddress.parse(toAddresses);
message.setFrom(new InternetAddress(addresser));
message.setRecipients(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setSentDate(new Date());
Multipart mm=new MimeMultipart();
BodyPart mdp=new MimeBodyPart();
mdp.setContent(context,"text/plain;charset=UTF-8");//设置邮件内容
mm.addBodyPart(mdp);
message.setContent(mm);
Transport transport = session.getTransport("smtp");
log.error("emailsendkerneltagtransport ", "transport="+transport);
transport.connect(host, mailName, mailPass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
result=true;
} catch (Exception e) {
log.error("emailsendkerneltag1", e.getMessage());
log.error("emailsendkerneltag2", e);
result = false;
e.printStackTrace();
}
return result;
}
测试结果 显示 , 新申请的163邮箱 成功的被 调用了,将邮件发送到了 目标邮箱。
如有疑问 请留言 欢迎提供建议
评论已有 0 条