请问:
我们公司使用了Google企业应用套件注册的非Gmail域名的gmail免费企业邮箱(如:[email protected]),使用javamail以该邮箱邮箱作为smtp发送电子邮件时报异常,为什么?
public static boolean sendEMail(String toMail, String mailTitle, String mailContent) {
String smtphost = "smtp.gmail.com"; // 发送邮件服务器
String user = "tom"; // 邮件服务器登录用户名
String password = "xxxxxx"; // 邮件服务器登录密码
String from = "[email protected]"; // 发送人邮件地址
String to = toMail; // 接受人邮件地址
String subject = mailTitle; // 邮件标题
String body = mailContent; // 邮件内容 try {
System.out.println("eamil:" + to);
Properties props = new Properties();
props.put("mail.smtp.host", smtphost);
props.put("mail.smtp.auth", "true");
if (smtphost.indexOf("smtp.gmail.com") >= 0) {
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
}
javax.mail.Session ssn = javax.mail.Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(smtphost, user, password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
return true;
} catch (Exception m) {
m.printStackTrace();
}
return false;
}
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. s9sm803579rvl.5 at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
at com.maweis.util.MailUtil.sendEMail(MailUtil.java:80)
at com.maweis.util.MailUtil.main(MailUtil.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110)
我们公司使用了Google企业应用套件注册的非Gmail域名的gmail免费企业邮箱(如:[email protected]),使用javamail以该邮箱邮箱作为smtp发送电子邮件时报异常,为什么?
public static boolean sendEMail(String toMail, String mailTitle, String mailContent) {
String smtphost = "smtp.gmail.com"; // 发送邮件服务器
String user = "tom"; // 邮件服务器登录用户名
String password = "xxxxxx"; // 邮件服务器登录密码
String from = "[email protected]"; // 发送人邮件地址
String to = toMail; // 接受人邮件地址
String subject = mailTitle; // 邮件标题
String body = mailContent; // 邮件内容 try {
System.out.println("eamil:" + to);
Properties props = new Properties();
props.put("mail.smtp.host", smtphost);
props.put("mail.smtp.auth", "true");
if (smtphost.indexOf("smtp.gmail.com") >= 0) {
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
}
javax.mail.Session ssn = javax.mail.Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(smtphost, user, password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
return true;
} catch (Exception m) {
m.printStackTrace();
}
return false;
}
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. s9sm803579rvl.5 at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
at com.maweis.util.MailUtil.sendEMail(MailUtil.java:80)
at com.maweis.util.MailUtil.main(MailUtil.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110)
解决方案 »
- 一个XML比较的难题
- 对于非计算机专业的学生,想要进入这个行业的话,除了java ee或.net外
- 请问一个classloader的问题,AppClassLoader负责加载classpath下的类,而rt.jar也是在classpath下啊?那么不也是首先由
- java.lang.IllegalStateException: Response already committed
- Spring 和 Dao的动态加载?
- jboss做服务器有时候访问找不到页面,刷新下就好了
- ~~在jboss中部署cmp 出现错误
- hibernate list() 空指针
- 跪求tomcat配置jsp文件
- 在一张有2000万记录大表上创建CMP是否可行?[进来就送分]
- 关于Class对象和实例对象
- 用这些ejb+jboss7.1+jndi 访问mysql数据库怎么弄呢
ssn.getTransport("smtps");