利用Java程序发送邮件

大学里一个assignment中的部分功能需要实现在Java程序中发送Email。

此段代码可以完整实现Java Project中自动发送邮件。

我所设置的参数可供Gmail的账户直接使用,其它账户只需修改SMTP_HOST_NAME,SMTP_PORT_NUMBER,SMTP_AUTH_USER,SMTP_AUTH_PWD 即可。

注意对于Gmail而言, mail.smtp.starttls.enable 必须设置为 true。

写好了main函数可以直接测试,或者在web project中直接调用静态方法 send(email, content)。

 

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

 

public class MailUtil {

 

private static final String SMTP_HOST_NAME = "gmail-smtp.l.google.com";

 

private static final String SMTP_PORT_NUMBER = "587";

 

private static final String SMTP_AUTH_USER = "cse.unsw.au@gmail.com";

 

private static final String SMTP_AUTH_PWD = "mypassword";

 

private static final String emailSubjectTxt = "Hotel Booking Order";

 

private static final String emailFromAddress = "non-reply@grandhotel.com";

 

 

public static void main(String[] args) throws Exception {

sendMail("XXXX@XXX.com", "bingo buddy");

}

 

public static void sendMail(String toEmail, String content)

throws Exception {

MailUtil smtpMailSender = new MailUtil();

String[] emailList = new String[1];

emailList[0] = toEmail;

smtpMailSender.postMail(emailList, emailSubjectTxt, content,

emailFromAddress);

System.out.println("Sucessfully Sent mail to " + toEmail);

}

 

public void postMail(String recipients[], String subject, String message,

String from) throws MessagingException {

boolean debug = false;

java.security.Security

.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

 

Properties props = new Properties();

props.put("mail.transport.protocol", "smtp");

props.put("mail.smtp.starttls.enable", "true");

props.put("mail.smtp.host", SMTP_HOST_NAME);

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.port", SMTP_PORT_NUMBER);

Authenticator auth = new SMTPAuthenticator();

Session session = Session.getDefaultInstance(props, auth);

 

session.setDebug(debug);

 

Message msg = new MimeMessage(session);

 

// set the from and to address

InternetAddress addressFrom = new InternetAddress(from);

msg.setFrom(addressFrom);

 

InternetAddress[] addressTo = new InternetAddress[recipients.length];

for (int i = 0; i < recipients.length; i++) {

addressTo[i] = new InternetAddress(recipients[i]);

}

msg.setRecipients(Message.RecipientType.TO, addressTo);

 

// Setting the Subject and Content Type

msg.setSubject(subject);

msg.setContent(message, "text/plain");

Transport.send(msg);

}

 

private class SMTPAuthenticator extends javax.mail.Authenticator {

 

public PasswordAuthentication getPasswordAuthentication() {

String username = SMTP_AUTH_USER;

String password = SMTP_AUTH_PWD;

return new PasswordAuthentication(username, password);

}

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值