资讯专栏INFORMATION COLUMN

java开发邮件发送(匿名)

terasum / 2680人阅读

摘要:环境需要的,高版本发送会验证,这个不会现在发送邮件的的域名必须和发送邮件的在同一地址纯文本邮件内容发送紧急通知你的余额已不足

环境:jdk8,maven
需要的pom,高版本发送会验证spf,这个不会
现在发送邮件的FROM的域名必须和发送邮件的app在同一地址

        
            javax.mail
            javax.mail-api
            1.5.6
        

纯文本邮件内容发送

public class MailUtil {
    private final static String FROM = "**@**.com";

    public static void main(String[] args) {

        String mail ="***@**.com";
        String smtp = getSmtpByEmail(mail);
        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", smtp);
        props.put("mai.smtp.auth", "false");

        Session session = Session.getInstance(props, null);
        MimeMessage msg= new MimeMessage(session);
        try {
            msg.setFrom(FROM);
            msg.setSubject("紧急通知","gb2312");
            Multipart multipart = new MimeMultipart();
            MimeBodyPart bodyPart = new MimeBodyPart();
            bodyPart.setText("你的余额已不足", "gb2312");
            multipart.addBodyPart(bodyPart);
            msg.setContent(multipart);
            msg.addHeader("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");
            msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(mail));
            Transport.send(msg);
            System.out.println("send success");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    private static String getSmtpByEmail(String mail){
        Hashtable hashtable = new Hashtable<>();
        hashtable.put(Context.PROVIDER_URL, "dns://");
        hashtable.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");

        String domain = mail.substring(mail.lastIndexOf("@") + 1);
        Attributes attrs = null;
        String smtp=null;
        try {
            InitialDirContext dirContext = new InitialDirContext(hashtable);
            attrs = dirContext.getAttributes(domain, new String[]{"MX"});
            NamingEnumeration attrsAll = attrs.getAll();

            while(attrsAll.hasMore()) {
                Attribute next = attrsAll.next();
                for(int i=0;i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75260.html

相关文章

  • Java™ 教程(Lambda表达式)

    Lambda表达式 匿名类的一个问题是,如果匿名类的实现非常简单,例如只包含一个方法的接口,那么匿名类的语法可能看起来不实用且不清楚,在这些情况下,你通常会尝试将功能作为参数传递给另一个方法,例如当有人单击按钮时应采取的操作,Lambda表达式使你可以执行此操作,将功能视为方法参数,或将代码视为数据。 上一节匿名类向你展示了如何在不给它命名的情况下实现基类,虽然这通常比命名类更简洁,但对于只有一个...

    lansheng228 评论0 收藏0
  • QQ邮箱是如何泄密的:JSON劫持漏洞攻防原理及演练

    摘要:下面就是对这种攻击原理的介绍以及预防方法。针对该漏洞的特点,通过覆盖数组构造函数以窃取暴露返回数组,而现在大多数浏览器还无法防范这种攻击。在上周的挪威开发者大会上,我做了一个针对劫持漏洞的演示。 注:作者发表这篇文章的时间较早,某些方法可能并不是最好的解决方案,但针对这种漏洞进行的攻击还依然可见,如早期的:QQMail邮件泄露漏洞。直到现在,你在某些邮箱打开一个外部链妆,依然会有安全警...

    khlbat 评论0 收藏0
  • 慕课网_《Java实现邮箱验证》学习总结

    摘要:时间年月日星期三说明本文部分内容均来自慕课网。用户过生日,系统发送生日祝福邮件。将最新活动和优惠以邮件的形式告知会员。通常把处理用户请求邮件发送请求的邮件服务器称为服务器。提供了加密的协议被称为。 时间:2017年06月07日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https://github.com/zcc...

    marser 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<