电子邮件客户端连接失败

时间:2017-02-20 02:49:30

标签: java email client javamail

我的连接电子邮件服务器出错了。我认为问题是关联的,因为从服务器下载消息总是失败。

我的部分代码:

// Connect to e-mail server.
public void connect() {
    // Display connect dialog.
    ConnectDialog dialog = new ConnectDialog(this);
    dialog.show();

    // Build connection URL from connect dialog settings.
    StringBuffer connectionUrl = new StringBuffer();
    connectionUrl.append(dialog.getTypes() + "://");
    connectionUrl.append(dialog.getUsername() + ":");
    connectionUrl.append(dialog.getPassword() + "@");
    connectionUrl.append(dialog.getServer() + "/");

/* Display dialog stating that messages are
   currently being downloaded from server. */
    final DownloadingDialog downloadingDialog =
            new DownloadingDialog(this);
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            downloadingDialog.show();
        }
    });

    // Establish JavaMail session and connect to server.
    Store store = null;
    try {
        // Initialize JavaMail session with SMTP server.
        Properties props = new Properties();
        props.put("mail.smtp.host", dialog.getSmtpServer());
        session = Session.getDefaultInstance(props, null);

        // Connect to e-mail server.
        URLName urln = new URLName(connectionUrl.toString());
        store = session.getStore(urln);
        store.connect();
    } catch (Exception e) {
        // Close the downloading dialog.
        downloadingDialog.dispose();

        // Show error dialog.
        showError("Unable to connect.", true);
    }

    // Download message headers from server.
    try {
        // Open main "INBOX" folder.
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_WRITE);

        // Get folder's list of messages.
        Message[] messages = folder.getMessages();

        // Retrieve message headers for each message in folder.
        FetchProfile profile = new FetchProfile();

        profile.add(FetchProfile.Item.ENVELOPE);
        folder.fetch(messages, profile);

        // Put messages in table.
        tableModel.setMessages(messages);
    } catch (Exception e) {
        // Close the downloading dialog.
        downloadingDialog.dispose();

        // Show error dialog.
        showError("Unable to download messages.", true);
    }

    // Close the downloading dialog.
    downloadingDialog.dispose();
}

// Show error dialog and exit afterwards if necessary.
private void showError(String message, boolean exit) {
    JOptionPane.showMessageDialog(this, message, "Error",
            JOptionPane.ERROR_MESSAGE);
    if (exit)
        System.exit(0);
}

// Get a message's content.
public static String getMessageContent(Message message)
throws Exception {
    Object content = message.getContent();
    if (content instanceof Multipart) {
        StringBuffer messageContent = new StringBuffer();
        Multipart multipart = (Multipart) content;
        for (int i = 0; i < multipart.getCount(); i++) {
            Part part = (Part) multipart.getBodyPart(i);
            if (part.isMimeType("text/plain")) {
                messageContent.append(part.getContent().toString());
            }
        }
        return messageContent.toString();
    } else {
        return content.toString();
    }
}

// Run the E-mail Client.
public static void main(String[] args) {
    EmailClient2 client = new EmailClient2();
    client.show();

    // Display connect dialog.
    client.connect();
}

}

当我运行我的应用程序时:

服务器:pop.gmail.com 用户名:******** @ gmail.com 密码:************* smtp服务器:smtp.gmail.com

和我的错误消息“无法连接”

0 个答案:

没有答案