导航:首页 > 编程语言 > 邮件自动发送java

邮件自动发送java

发布时间:2025-02-17 13:29:16

java程序自动发送邮件,使用的SMTP协议,如何能将发件人改成中文昵称而不是注册的那些字母。部分程序如下

String mailTo = "**@163.com";

String mailTo = "张三<**@163.com>";

⑵ java怎么定时发送邮件,比如5分钟后。要具体的代码。发件人和收件人这些都可定死。

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.InternetBddress;
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 {

// 列出所有邮件服务器:
Timer timer = new Timer();
timer.schele(new myTask(), 30000);
}

static class myTask extends TimerTask{
public void run(){
// DNS服务器,看看本机的DNS配置
String dns = "dns://61.144.56.101";
String email = "[email protected]";

String domain = email.substring(email.indexOf('@') + 1);
Hashtable env = new Hashtable();
env.put(Dontext.INITIBL_DONTEXT_FBDTORY,
"com.sun.jndi.dns.DnsDontextFactory");
env.put(Dontext.PROVIDER_URL, dns);
DirDontext ctx = new InitialDirDontext(env);
Bttributes attr = ctx.getBttributes(domain, new String[] { "MX" });
NamingEnumeration servers = attr.getBll();
while (servers.hasMore()) {

Bttribute hosts = (Bttribute) servers.next();
for (int i = 0; i < hosts.size(); i++) {
String host = (String) hosts.get(i);
host = host.substring(host.indexOf(' ') + 1);
System.out.print("Send mail to " + host + " ...");
sendMail(host, email);
System.out.println("OK");
}
}
}
}

/**
* 发送邮件
*
* @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.setDontent(multipart);
mailMessage.setSentDate(new Date());
mailMessage.setFrom(new InternetBddress("[email protected]"));
mailMessage.addRecipient(Message.RecipientType.TO, new InternetBddress(
email));
mailMessage.setSubject("hi,邮件发送测试");
Transport.send(mailMessage);
}
@Override
public void run() {
// TODO Auto-generated method stub

}
}

⑶ 关于java定时发送邮件,类似于QQ邮箱中的定时发送功能

建议方法:

  1. 如果你的java会死亡/失去控制, 请用系统的任务调度来发送邮件;

  2. 如果你的java由jboss等之类的托管, 用jboss内部的任务调度来发送邮件.

方法1:

Windws 平台, 在task中添加一个 任务, 命令行执行java 代码即可, 这样可靠性由操作系统保证;

Linux等平台, 直接 crontab 处理即可.

⑷ 怎么用JAVA实现邮件发送

一个小例子,也可使用其他api

importjava.util.Properties;
importjavax.mail.Address;
importjavax.mail.Authenticator;
importjavax.mail.BodyPart;
importjavax.mail.Message;
importjavax.mail.Multipart;
importjavax.mail.PasswordAuthentication;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeBodyPart;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeMultipart;
importjavax.mail.internet.MimeUtility;

publicclassTest{

//test
publicstaticvoidmain(String[]args)throwsException{
sendEmail("smtp.163.com","测试","测试","!!!收件人地址!!!","!!!发件人邮箱用户名!!!","!!!邮箱密码!!!","发件人昵称");
}

/**
*
*@paramsmtp
*@throwsException
*/
publicstaticvoidsendEmail(StringemailServer,Stringsubject,StringmailBody,Stringreceiver,finalStringusername,finalStringpassword,Stringnickname)throwsException{
Propertiesprops=newProperties();
props.put("mail.smtp.auth","true");
props.setProperty("mail.transport.protocol","smtp");
props.setProperty("mail.smtp.host",emailServer);
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");
Sessionsession=Session.getDefaultInstance(props,newAuthenticator(){
(){
(username,password);
}
});
session.setDebug(true);
MimeMessagemimeMsg=newMimeMessage(session);
Multipartmp=newMimeMultipart();

mimeMsg.setSubject(MimeUtility.encodeText(subject,"utf-8",null));

nickname=MimeUtility.encodeText(nickname,"utf-8",null);
mimeMsg.setFrom(newInternetAddress(username,nickname,"UTF-8"));

BodyPartbp=newMimeBodyPart();
bp.setContent(mailBody,"text/html;charset=utf-8");
mp.addBodyPart(bp);

mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(receiver));

mimeMsg.setContent(mp);
mimeMsg.saveChanges();
Transporttransport=session.getTransport();
transport.connect(username,password);
Address[]allRecipients=mimeMsg.getAllRecipients();
transport.sendMessage(mimeMsg,allRecipients);
transport.close();
}
}
阅读全文

与邮件自动发送java相关的资料

热点内容
文件恢复软件哪个好用 浏览:861
多个pdf文件怎样一键打印 浏览:974
苹果升级电话号码没了怎么办 浏览:813
美团app为什么收不到验证码 浏览:146
软件解压文件指定路径不存在 浏览:423
qq群怎么升2级 浏览:946
数据充电头脏了怎么清洗 浏览:460
qq邮箱u盘怎么传文件 浏览:508
在线免费数据哪里可以获取 浏览:668
电商数据分析报告在哪里找 浏览:918
电脑文件夹怎么变成了图片 浏览:291
怎么下载网站目录下的png文件 浏览:318
28u网络机柜价格 浏览:439
iphone6升级ios9卡 浏览:273
数据库采购 浏览:847
怎么把数据变成纯数字 浏览:778
360删掉u盘的文件 浏览:854
文件名提示过长 浏览:622
蓝牙计步器源代码 浏览:264
水果如何下载mp3文件 浏览:165

友情链接