通过Java程序从我的计算机发送邮件需要什么?我的意思是任何更改,例如启用或禁用选项,都应该从PC完成。
答案 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();
}
}
}