如何通过Java程序从PC发送电子邮件?

时间:2012-03-10 01:15:24

标签: java email

通过Java程序从我的计算机发送邮件需要什么?我的意思是任何更改,例如启用或禁用选项,都应该从PC完成。

4 个答案:

答案 0 :(得分:2)

Java内置了库。

import javax.mail.*;
import javax.mail.internet.*;

是您需要的库。

您需要在类路径中包含 mail.jar ,因为它不是核心Java的一部分。

答案 1 :(得分:2)

您应该有权访问可通过其发送邮件的SMTP服务器。此外,您还需要检查已安装的防火墙是否允许端口25上的传出流量与SMTP服务器通信。

修改:如果您如下所述,您没有SMTP服务器访问权限,则可以为您的应用注册gmail帐户并使用Gmail SMTP服务器(显然不适合一个商业应用程序,但作为个人应用程序完全正常。有关如何设置的说明,请阅读此Lifehacker帖子。

答案 2 :(得分:0)

从Java创建和发送基于MIME的电子邮件消息的规范方式(因此它可以包含HTML和图像)使用JavaMail,这是一个非常强大的软件包,甚至可以通过SSL教授通过GMail发送邮件如果您没有可用的内部SMTP服务器。

有关如何操作的两个示例,请参阅http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

答案 3 :(得分:0)

只需更改电子邮件地址和密码即可。此示例使用gmail。此外,您可以拥有任意数量的收件人。

 import java.util.Properties;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;


 public class AnotherMail {

public static void main(String... args) {
    String host = "smtp.gmail.com";
    String from = "myEmail@gmail.com";
    String pass = "MyPassword";
    Properties props = System.getProperties();
    props.put("mail.smtp.starttls.enable", "true"); // added this line
    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 = {"someRecipient@gmail.com"}; // added this line
    try {
        Session session = Session.getDefaultInstance(props, null);
        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++) { // changed from a while loop
            toAddress[i] = new InternetAddress(to[i]);
        }
        System.out.println(Message.RecipientType.TO);

        for (int i = 0; i < toAddress.length; i++) { // changed from a while loop
            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 (MessagingException mx) {
        mx.printStackTrace();
    }

}
 }