我正在创建一个应用程序,我想向我的客户发送一封电子邮件。当我编译下面的代码时,它可以,但是当我运行它时给出了如下错误
java code:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendEmail
{
public static void main(String [] args)
{
String to = "prakash_d22@rediffmail.com";
String from = "web@gmail.com";
String host = "localhost";
Properties properties = System.getProperties();
properties.setProperty("smtp.gmail.com", host);
Session session = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("This is the Subject Line!");
message.setText("This is actual message");
Transport.send(message);
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
错误:
请指导我。
答案 0 :(得分:2)
String host = "smtp.gmail.com";
Properties properties = new Properties();
设置以下属性
properties .put("mail.smtp.starttls.enable", "true");
properties .put("mail.smtp.host", host);
properties .put("mail.smtp.user", username);
properties .put("mail.smtp.password", password);
properties .put("mail.smtp.port", "587");
properties .put("mail.smtp.auth", "true");
答案 1 :(得分:0)
您是否阅读过Fundamentals of the JavaMail API?
无论如何,从我能说的问题来看,你使用的是无效配置。
properties.setProperty("smtp.gmail.com", host);
如您所见{J},JavaMail不支持名为smtp.gmail.com
的属性。你可能想要的实际上是......
properties.setProperty("mail.smtps.host", host);
我怀疑您希望使用in the JavaMail API documentation,而不是现在使用localhost
托管final String host = "smtp.gmail.com";
,因此我建议您更改代码,以便......
JavaMail
您还希望使用properties.setProperty("mail.smtps.auth", "true");
建议您可以在Gmail's SMTPS server中执行的身份验证,如下所示:
final Session session = Session.getInstance(properties, new Authenticator() {
static final PasswordAuthentication AUTH = new PasswordAuthentication(USER, PASS);
protected PasswordAuthentication getPasswordAuthentication() {
return AUTH;
}
});
请注意,Gmail要求进行身份验证才能发送邮件。似乎另一个答案建议您可以使用会话属性配置用户名/密码;不幸的是,这是不正确的。
您要做的是使用FAQ on Gmail。
{{1}}