本文實例講述了java實現基於SMTP發送郵件的方法。分享給大家供大家參考。具體實現方法如下:
import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import org.apache.log4j.Logger;public class MailUtil { private static Logger logger = Logger.getLogger(MailUtil.class); /** * 發送郵件* * @param smtp * SMTP服務器* @param user * 用戶名* @param password * 密碼* @param subject * 標題* @param content * 郵件內容* @param from * 發件人郵箱* @param to * 收件人郵箱*/ public static void send(String smtp, final String user, final String password, String subject, String content, String from, String to) { try { Properties props = new Properties(); props.put("mail. smtp.host", smtp); props.put("mail.smtp.auth", "true"); Session ssn = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication (user, password); } }); 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(content); //設置內容message.setSentDate(new Date()); //設置發信時間Transport transport = ssn.getTransport("smtp"); transport.connect(smtp, user, password); transport.sendMessage(message, message .getRecipients(Message.RecipientType.TO)); // transport.send(message); transport.close(); logger.info("郵件發送成功"); } catch (Exception e) { logger.warn("郵件發送失敗", e); } }}希望本文所述對大家的java程序設計有所幫助。