导航:首页 > 编程语言 > 邮件自动发送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相关的资料

热点内容
linux内核schedule函数分析 浏览:772
linux看文件权限 浏览:455
拆分盘数据如何保存 浏览:434
如何将表内不重复数据筛选出来 浏览:160
vba修改指定文件夹内的文件名 浏览:700
javainvoke超时 浏览:135
iphone6通知声音 浏览:338
迅雷已完成的文件不显示 浏览:155
oppor7plus升级系统 浏览:688
爱奇艺视频怎么打开本地文件 浏览:660
js浏览器扩展开发 浏览:436
猿编程可以用哪些设备 浏览:57
修改mysql配置文件 浏览:318
c游戏程序 浏览:456
UC网盘视频文件怎么上传 浏览:158
win7镜像文件有多大 浏览:256
华为手机屏幕如何新建文件夹 浏览:521
win10控制台搜索文件 浏览:612
苹果手机数据如何备份到卡上 浏览:735
狐狸app怎么打不开了 浏览:723

友情链接