直接上源码。
package net.mn886.mailserver; import java.util.*; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.naming.*; import javax.naming.directory.*; /** * 使成为事实邮件的特快专递功能 * @author Winter Lau */ public class Mailer { public static void main(String[] args) throws NamingException, MessagingException { // DNS服务器,看看本机的DNS配置 String dns = "dns://223.5.5.5";//用的阿里云的dns String email = "xxx@xx.com";//接受者的邮箱,这里通过QQ邮箱没有问题。网易现在需要ip验证才可以发送 if (args.length > 0) email = args[0]; String domain = email.substring(email.indexOf('@') + 1); Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory"); env.put(Context.PROVIDER_URL, dns); DirContext ctx = new InitialDirContext(env); Attributes attr = ctx.getAttributes(domain, new String[] { "MX" }); NamingEnumeration servers = attr.getAll(); // 列出所有邮件服务器: while (servers.hasMore()) { Attribute hosts = (Attribute) servers.next(); for (int i = 0; i < hosts.size(); i++) { String host = (String) hosts.get(i); host = host.substring(host.indexOf(' ') + 1); System.out.println("Send mail to " + host + " ..."); sendMail(host, email); System.out.println("OK"); break; } } } /** * 发送邮件 * * @param smtpHost * @param email * @throws MessagingException */ protected static void sendMail(String smtpHost, String email) throws MessagingException { Properties mailProperties = System.getProperties(); mailProperties.put("mail.smtp.host", smtpHost); mailProperties.put("mail.smtp.port", "25"); mailProperties.put("mail.smtp.auth", "false"); Session mailSession = Session.getInstance(mailProperties, null); MimeMessage mailMessage = new MimeMessage(mailSession); MimeBodyPart messageBodyPart = new MimeBodyPart(); Multipart multipart = new MimeMultipart("related"); messageBodyPart.setText("邮件的内容"); multipart.addBodyPart(messageBodyPart); mailMessage.setContent(multipart); mailMessage.setSentDate(new Date()); mailMessage.setFrom(new InternetAddress("xxx@xxx.com"));//换成发送者的邮箱 mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress( email)); mailMessage.setSubject("邮件的标题"); Transport.send(mailMessage); } }
-----------------------------------------------------
转载请注明来源此处
原地址:#
发表