我用的框架是JSF
问题:用主函数测试邮件发送成功,但是我到页面上去调用send()方法来发送邮件的时候报:INFO: >>>>>Sending data EHLO jiangwei<<<<<<
INFO: >>>>>Sending data HELO jiangwei<<<<<<
INFO: >>>>>Sending data QUIT<<<<<<
SEVERE: javax.mail.MessagingException: Failure sending HELO command to SMTP server
代码:@Named(value="javaMail")
@RequestScoped
public class JavaMail { // 邮箱服务器
private String host = "smtp.163.com";
// 这个是你的邮箱用户名
private String username = "****@163.com";
// 你的邮箱密码
private String password = "******"; private String mail_from = "*******"; private String mail_subject = "我爱我家宝贝"; private String mail_body = "我想我家宝贝了"; private String personalName = "宝贝"; public JavaMail() {
}
/**
* 此段代码用来发送普通电子邮件
*/
public void send(){
try {
Properties props = new Properties(); // 获取系统环境
Authenticator auth = new Email_Autherticator(); // 进行邮件服务器用户认证
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session1 = Session.getInstance(props, auth);
// 设置session,和邮件服务器进行通讯。
MimeMessage message = new MimeMessage(session1);
// message.setContent("foobar, "application/x-foobar"); // 设置邮件格式
message.setSubject(mail_subject); // 设置邮件主题
message.setText(mail_body); // 设置邮件正文
//message.setHeader(mail_head_name, mail_head_value); // 设置邮件标题
message.setSentDate(new Date()); // 设置邮件发送日期
Address address = new InternetAddress(mail_from, personalName);
message.setFrom(address); // 设置邮件发送者的地址
Address toAddress = new InternetAddress("[email protected]"); // 设置邮件接收方的地址
message.addRecipient(Message.RecipientType.TO, toAddress);
Transport.send(message); // 发送邮件
System.out.println("send ok!");
} catch (Exception ex) {
ex.printStackTrace();
}
} /**
* 用来进行服务器对用户的认证
*/
public class Email_Autherticator extends Authenticator {
public Email_Autherticator() {
super();
} public Email_Autherticator(String user, String pwd) {
super();
username = user;
password = pwd;
} public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
public static void main(String[] args) {
JavaMail sendmail = new JavaMail();
try {
sendmail.send();
} catch (Exception ex) {
}
}}mailjavajsf
问题:用主函数测试邮件发送成功,但是我到页面上去调用send()方法来发送邮件的时候报:INFO: >>>>>Sending data EHLO jiangwei<<<<<<
INFO: >>>>>Sending data HELO jiangwei<<<<<<
INFO: >>>>>Sending data QUIT<<<<<<
SEVERE: javax.mail.MessagingException: Failure sending HELO command to SMTP server
代码:@Named(value="javaMail")
@RequestScoped
public class JavaMail { // 邮箱服务器
private String host = "smtp.163.com";
// 这个是你的邮箱用户名
private String username = "****@163.com";
// 你的邮箱密码
private String password = "******"; private String mail_from = "*******"; private String mail_subject = "我爱我家宝贝"; private String mail_body = "我想我家宝贝了"; private String personalName = "宝贝"; public JavaMail() {
}
/**
* 此段代码用来发送普通电子邮件
*/
public void send(){
try {
Properties props = new Properties(); // 获取系统环境
Authenticator auth = new Email_Autherticator(); // 进行邮件服务器用户认证
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session1 = Session.getInstance(props, auth);
// 设置session,和邮件服务器进行通讯。
MimeMessage message = new MimeMessage(session1);
// message.setContent("foobar, "application/x-foobar"); // 设置邮件格式
message.setSubject(mail_subject); // 设置邮件主题
message.setText(mail_body); // 设置邮件正文
//message.setHeader(mail_head_name, mail_head_value); // 设置邮件标题
message.setSentDate(new Date()); // 设置邮件发送日期
Address address = new InternetAddress(mail_from, personalName);
message.setFrom(address); // 设置邮件发送者的地址
Address toAddress = new InternetAddress("[email protected]"); // 设置邮件接收方的地址
message.addRecipient(Message.RecipientType.TO, toAddress);
Transport.send(message); // 发送邮件
System.out.println("send ok!");
} catch (Exception ex) {
ex.printStackTrace();
}
} /**
* 用来进行服务器对用户的认证
*/
public class Email_Autherticator extends Authenticator {
public Email_Autherticator() {
super();
} public Email_Autherticator(String user, String pwd) {
super();
username = user;
password = pwd;
} public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
public static void main(String[] args) {
JavaMail sendmail = new JavaMail();
try {
sendmail.send();
} catch (Exception ex) {
}
}}mailjavajsf
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货