在Java中发送邮件时出现问题

在Java中发送邮件时出现问题,java,jakarta-mail,Java,Jakarta Mail,我的程序中有两个例外 无法连接到本地主机端口25 拒绝连接 java的代码是--- 所以,请告诉我该怎么做&为什么会出现这些异常&如何使用java和localhost作为主机发送邮件。 ....................... 提前感谢。这是发送电子邮件的代码片段 try { String host = "yourHostName"; String from = "test@test.com"; String to[] = {"test123

我的程序中有两个例外

  • 无法连接到本地主机端口25

  • 拒绝连接

  • java的代码是---

    所以,请告诉我该怎么做&为什么会出现这些异常&如何使用java和localhost作为主机发送邮件。
    ....................... 提前感谢。

    这是发送电子邮件的代码片段

    try {
            String host = "yourHostName";
            String from = "test@test.com";
            String to[] = {"test123@test123.com"};
            String subject = "Test";
    
            String message = "Test";
    
            Properties prop = System.getProperties();
            prop.put("mail.smtp.host", host);
            Session sess1 = Session.getInstance(prop, null);
            MimeMessage msg = new MimeMessage(sess1);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] toAddress = new InternetAddress[to.length];
            for (int i = 0; i < to.length; i++) {
                toAddress[i] = new InternetAddress(to[i]);
            }
            msg.setRecipients(Message.RecipientType.TO, toAddress);
            msg.setSubject(subject);
    
            //Fill the message
            msg.setText(message);
            Transport.send(msg);
        } catch (MessagingException me) {
            me.printStackTrace();
        }
    
    试试看{
    String host=“yourHostName”;
    字符串from=”test@test.com";
    字符串到[]={”test123@test123.com"};
    字符串subject=“Test”;
    String message=“Test”;
    Properties prop=System.getProperties();
    prop.put(“mail.smtp.host”,主机);
    Session sess1=Session.getInstance(prop,null);
    mimessage msg=新mimessage(sess1);
    msg.setFrom(新因特网地址(from));
    InternetAddress[]toAddress=新的InternetAddress[to.length];
    for(int i=0;i

    您在发送电子邮件时会遇到哪些例外情况?您确定SMTP服务器正在默认端口25侦听吗?您是否能够通过Telnet手动发送电子邮件?另外,在测试时关闭所有防火墙以确保安全。

    只需遵循以下代码;将电子邮件发送到java桌面非常有用,而且可以正常工作

    import java.util.*;
    import javax.activation.CommandMap;
    import javax.activation.MailcapCommandMap;
    import javax.mail.*;
    import javax.mail.Provider;
    
    
    import javax.mail.internet.*; 
    public class Main
    {
        public static void main(String[] args)
        {
            final String username = "your@gmail.com";
            final String password = "password";
            Properties prop = new Properties();
            prop.put("mail.smtp.auth", "true");
            prop.put("mail.smtp.host", "smtp.gmail.com");
            prop.put("mail.smtp.port", "587");
            prop.put("mail.smtp.starttls.enable", "true");
            Session session = Session.getDefaultInstance(prop, new javax.mail.Authenticator()
            {
                protected PasswordAuthentication getPasswordAuthentication()
                {
                    return new PasswordAuthentication(username, password);
                }
            });
            try
            {
                String body = "Dear Renish Khunt Welcome";
                String htmlBody = "<strong>This is an HTML Message</strong>";
                String textBody = "This is a Text Message.";
                Message message = new MimeMessage(session);
                message.setFrom(new InternetAddress("your@gmail.com"));
                message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("receiver@gmail.com"));
                message.setSubject("Testing Subject");
                MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
                mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
                mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
                mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
                mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
                mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
                CommandMap.setDefaultCommandMap(mc);
                message.setText(htmlBody);
                message.setContent(textBody, "text/html");
                Transport.send(message);
                System.out.println("Done");
            }
            catch (MessagingException e)
            {
                e.printStackTrace();
            }
        }
    }
    
    import java.util.*;
    导入javax.activation.CommandMap;
    导入javax.activation.MailcapCommandMap;
    导入javax.mail.*;
    导入javax.mail.Provider;
    导入javax.mail.internet.*;
    公共班机
    {
    公共静态void main(字符串[]args)
    {
    最终字符串用户名=”your@gmail.com";
    最终字符串password=“password”;
    Properties prop=新属性();
    prop.put(“mail.smtp.auth”,“true”);
    prop.put(“mail.smtp.host”、“smtp.gmail.com”);
    prop.put(“mail.smtp.port”,“587”);
    prop.put(“mail.smtp.starttls.enable”,“true”);
    Session Session=Session.getDefaultInstance(prop,new javax.mail.Authenticator()
    {
    受保护的密码身份验证getPasswordAuthentication()
    {
    返回新密码身份验证(用户名、密码);
    }
    });
    尝试
    {
    String body=“尊敬的Renish Khunt Welcome”;
    字符串htmlBody=“这是一条HTML消息””;
    String textBody=“这是一条短信。”;
    Message Message=新的mimessage(会话);
    message.setFrom(新的InternetAddress(“your@gmail.com"));
    message.setRecipients(message.RecipientType.TO,InternetAddress.parse(“receiver@gmail.com"));
    message.setSubject(“测试主体”);
    MailcapCommandMap mc=(MailcapCommandMap)CommandMap.getDefaultCommandMap();
    mc.addMailcap(“text/html;x-java-content-handler=com.sun.mail.handlers.text_html”);
    mc.addMailcap(“text/xml;x-java-content-handler=com.sun.mail.handlers.text_xml”);
    mc.addMailcap(“text/plain;;x-java-content-handler=com.sun.mail.handlers.text_plain”);
    mc.addMailcap(“multipart/*;x-java-content-handler=com.sun.mail.handlers.multipart_mixed”);
    mc.addMailcap(“message/rfc822;;x-java-content-handler=com.sun.mail.handlers.message_rfc822”);
    setDefaultCommandMap(mc);
    message.setText(htmlBody);
    message.setContent(textBody,“text/html”);
    传输。发送(消息);
    系统输出打印项次(“完成”);
    }
    捕获(消息异常e)
    {
    e、 printStackTrace();
    }
    }
    }
    
    您的计算机上是否运行SMTP服务器?此外,您正在尝试连接到本地主机,但使用Gmail凭据进行身份验证。你的意思是通过Gmail的SMTP服务器发送邮件吗?我是新手,但我认为SMTP服务器是在我的m/c上运行的,因为当我使用SMTP.Gmail.com作为主机时,异常是-javax.mail.AuthenticationFailedException。如果我错了,请告诉我如何检查SMTP服务器是否在m/c中运行。@dkarp…..对不起,我使用username=“Java.Mail时出现了一些打印错误。CA@localhost";1.javax.mail.MessaginException:无法连接到SMTP主机:localhost,端口:25;2.嵌套的异常是:java.net.ConnectException:Connection拒绝:使用username=“java.Mail时连接。CA@localhost". ,我怎么知道我的SMTP服务器正在默认端口监听&我是新手,所以我不知道;我不知道如何通过Telnet手动发送电子邮件通过Telnet发送电子邮件时请遵循此链接。同时检查您的本地防火墙。
    import java.util.*;
    import javax.activation.CommandMap;
    import javax.activation.MailcapCommandMap;
    import javax.mail.*;
    import javax.mail.Provider;
    
    
    import javax.mail.internet.*; 
    public class Main
    {
        public static void main(String[] args)
        {
            final String username = "your@gmail.com";
            final String password = "password";
            Properties prop = new Properties();
            prop.put("mail.smtp.auth", "true");
            prop.put("mail.smtp.host", "smtp.gmail.com");
            prop.put("mail.smtp.port", "587");
            prop.put("mail.smtp.starttls.enable", "true");
            Session session = Session.getDefaultInstance(prop, new javax.mail.Authenticator()
            {
                protected PasswordAuthentication getPasswordAuthentication()
                {
                    return new PasswordAuthentication(username, password);
                }
            });
            try
            {
                String body = "Dear Renish Khunt Welcome";
                String htmlBody = "<strong>This is an HTML Message</strong>";
                String textBody = "This is a Text Message.";
                Message message = new MimeMessage(session);
                message.setFrom(new InternetAddress("your@gmail.com"));
                message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("receiver@gmail.com"));
                message.setSubject("Testing Subject");
                MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
                mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
                mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
                mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
                mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
                mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
                CommandMap.setDefaultCommandMap(mc);
                message.setText(htmlBody);
                message.setContent(textBody, "text/html");
                Transport.send(message);
                System.out.println("Done");
            }
            catch (MessagingException e)
            {
                e.printStackTrace();
            }
        }
    }