有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用域smtp发送Java邮件?

我正在尝试通过我的域电子邮件发送电子邮件。我尝试了两个不同的端口465和587。但是,在这两种形式中,都会出现这种例外情况

当我使用GoogleSMTP 465端口运行这段代码时,它工作得非常好。但由于谷歌的每日限制,我需要通过域电子邮件地址发送电子邮件

提前谢谢

代码:

public static void sendMailTo() throws Exception {

    String mailAddress = "mail@mydomain.com";
    String mailPassword = "password";

    String messageContext = "Content";

    try {

        String to = "ahmet****@gmail.com";

        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

        // Get a Properties object
        Properties props = System.getProperties();
        props.setProperty("mail.smtps.host", "smtp.mydomain.com");
        props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.port", "587");
        props.setProperty("mail.smtp.socketFactory.port", "587");
        props.setProperty("mail.smtps.auth", "true");

        props.put("mail.smtps.quitwait", "false");

        Session session = Session.getInstance(props, null);

        // -- Create a new message --
        final MimeMessage msg = new MimeMessage(session);

        // -- Set the FROM and TO fields --
        msg.setFrom(new InternetAddress(mailAddress));
        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));

        DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        Date date = new Date();

        msg.setSubject("Yeni Kullanici! (" + dateFormat.format(date) + ")");
        msg.setText(messageContext, "utf-8");
        msg.setSentDate(new Date());

        SMTPTransport t = (SMTPTransport) session.getTransport("smtps");

        t.connect("smtp.mydomain.com", mailAddress, mailPassword);
        t.sendMessage(msg, msg.getAllRecipients());
        t.close();

    } catch (Exception e) {
        e.printStackTrace();
    }

}

例外情况:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.mydomain.com, 587; timeout -1;

  nested exception is:
    java.net.UnknownHostException: smtp.mydomain.com
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2100)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:699)
    at javax.mail.Service.connect(Service.java:345)
    at javax.mail.Service.connect(Service.java:226)
    at verego.MailSender.sendMailToTeacher(MailSender.java:86)
    at verego.MailSender.main(MailSender.java:37)

Caused by: java.net.UnknownHostException: smtp.mydomain.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:331)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:217)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2066)
    ... 5 more

共 (0) 个答案