-1

我正在尝试使用 Gmail smtp 服务器发送邮件。

package com;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Email {
public static void main(String[] args) {
    try 
    {
    String host = "smtp.gmail.com";
    final String from = "myuname@gmail.com";
    final String pass = "mypassword";
    Properties props = System.getProperties();
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", from);
    props.put("mail.smtp.password", pass);
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");

    String[] to = {"to@gmail.com"}; 

    Session session = Session.getInstance(props,
          new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(from, pass);
            }
          });
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));

    InternetAddress[] toAddress = new InternetAddress[to.length];

    // To get the array of addresses
    for( int i=0; i < to.length; i++ ) { 
        toAddress[i] = new InternetAddress(to[i]);
    }
    System.out.println(Message.RecipientType.TO);

    for( int i=0; i < toAddress.length; i++) { 
        message.addRecipient(Message.RecipientType.TO, toAddress[i]);
    }
    message.setSubject("sending in a group");
    message.setText("Welcome to JavaMail");
    Transport transport = session.getTransport("smtp");
    transport.connect(host, from, pass);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
    }catch (Exception e) {
        System.out.println(e);
    }
}
}

但我得到一个exception

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
  nested exception is:
    java.net.ConnectException: Connection refused: connect

我怎样才能消除这个错误?提前致谢。

4

2 回答 2

1

一个更简单的选择是使用 apache commons mail。

import org.apache.commons.mail.*;

Email email = new SimpleEmail();
email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("username", "password"));
email.setSSL(true);
try{
email.setFrom("yourID@gmail.com");
email.setSubject("hello");
String s="hi"
email.setMsg(s);
email.addTo(id);
email.send();
于 2012-10-25T09:42:36.670 回答
0

我认为问题出在我的电子邮件 ID 中。我创建了一个新的,它正在工作。

谢谢大家。

于 2012-10-31T07:23:47.663 回答