javamail(javamail发送邮件带附件)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享javamail的知识,其中也会对javamail发送邮件带附件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

javamail 验证用户名密码

        //1. 创建propeties

        Properties props = new Properties();

        props.setProperty("mail.store.protocol", "pop3");    //协禅锋孝议

        props.setProperty("mail.pop3.host", "pop3.163.com"); //主机

        

        try{

            Session session = Session.getDefaultInstance(props);

            贺稿Store store = session.getStore();

            store.connect(smtpType, username, password);

        } catch(Exception e) {

            e.printStackTrace();

        }

这里只要connect()方法连接成功基手就行了,抛出异常则代表验证不通过.

javamail群发只显示一个收件人

题主问的是javamail群发只显示一个收件人是什么原因?编辑代入相对应的代码就可以。

想要javamail群发只显示一个收件人明羡,每可以在收件人列表当中进行设置,然后设置只能看到自己,含中别人看不到谈槐山,这样就可以直接更改,并且别人在收件的时候也会只显示一个收件人。

JavaMail是提供给开发者处理电子邮件相关的编程接口。

Javamail写带附件eml文件并调用Outlook

将邮件写入到文件的代码

msg saveChanges();File f = new File( d:/test eml );msg writeTo(new FileOutputStream(f));

调脊答用outlook的代码

Process p = Runtime getRuntime() exec( cmd /C start msimn exe /eml:d:/test eml );

完整的代码如下

package code jdk mail;

import java io File;import java io FileNotFoundException;import java io FileOutputStream;import java io IOException;import java util Date;import java util Enumeration;import java util HashMap;import java util Properties;import java util Vector;

import javax activation DataHandler;import javax activation FileDataSource;import javax mail Address;import javax mail AuthenticationFailedException;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 mail internet MimeUtility;

public class EmailWriteToFile {// 定义发件人 收件人 SMTP服务器 用户名 密码 主题 内容等private String displayName;

private String to;

private String from;

private String *** tpServer;

private String username;

private String password;

private String subject;

private String content;

private boolean ifAuth; // 服务器是否要正埋身份认证

private String filename = ;

private Vector file = new Vector(); // 用于保樱清慧存发送附件的文件名的集合

private String contentType = text/ ;

private String charset = utf ;

public void addFile(String filename) {file add(filename);}

public String getContentType() {return contentType;}

public void setContentType(String contentType) {ntentType = contentType;}

public String getCharset() {return charset;}

public void setCharset(String charset) {this charset = charset;}

/*** 设置SMTP服务器地址*/public void setSmtpServer(String *** tpServer) {this *** tpServer = *** tpServer;}

/*** 设置发件人的地址*/public void setFrom(String from) {this from = from;}

/*** 设置显示的名称*/public void setDisplayName(String displayName) {this displayName = displayName;}

/*** 设置服务器是否需要身份认证*/public void setIfAuth(boolean ifAuth) {this ifAuth = ifAuth;}

/*** 设置E mail用户名*/public void setUserName(String username) {this username = username;}

/*** 设置E mail密码*/public void setPassword(String password) {this password = password;}

/*** 设置接收者*/public void setTo(String to) {this to = to;}

/*** 设置主题*/public void setSubject(String subject) {this subject = subject;}

/*** 设置主体内容*/public void setContent(String content) {ntent = content;}

public EmailWriteToFile() {

}

private int port = ;

public int getPort() {return port;}

public void setPort(int port) {this port = port;}

/*** 发送邮件** @throws IOException* @throws FileNotFoundException*/public boolean send() throws FileNotFoundException IOException {HashMap<String String> map = new HashMap<String String>();map put( state success );String message = 邮件发送成功! ;Session session = null;Properties props = System getProperties();props put( mail *** tp host *** tpServer);props put( mail *** tp port port);try {

props put( mail *** tp auth false );session = Session getDefaultInstance(props null);

session setDebug(false);Transport trans = null;Message msg = new MimeMessage(session);try {Address from_address = new InternetAddress(from displayName);msg setFrom(from_address);} catch (java io UnsupportedEncodingException e) {e printStackTrace();}InternetAddress[] address = { new InternetAddress(to) };msg setRecipients(Message RecipientType TO address);msg setSubject(subject);Multipart mp = new MimeMultipart();MimeBodyPart mbp = new MimeBodyPart();mbp setContent(content toString() getContentType() + ; charset= + getCharset());mp addBodyPart(mbp);if (!file isEmpty()) {// 有附件Enumeration efile = file elements();while (efile hasMoreElements()) {mbp = new MimeBodyPart();filename = efile nextElement() toString(); // 选择出每一个附件名FileDataSource fds = new FileDataSource(filename); // 得到数据源mbp setDataHandler(new DataHandler(fds)); // 得到附件本身并至入BodyPartmbp setFileName(MimeUtility encodeText(fds getName() getCharset() B )); // 得到文件名同样至入BodyPartmp addBodyPart(mbp);}file removeAllElements();}msg setContent(mp); // Multipart加入到信件msg setSentDate(new Date()); // 设置信件头的发送日期// 发送信件msg saveChanges();File f = new File( d:/test eml );msg writeTo(new FileOutputStream(f));

} catch (AuthenticationFailedException e) {map put( state failed );message = 邮件发送失败!错误原因 + 身份验证错误! ;e printStackTrace();return false;} catch (MessagingException e) {message = 邮件发送失败!错误原因 + e getMessage();map put( state failed );e printStackTrace();Exception ex = null;if ((ex = e getNextException()) != null) {System out println(ex toString());ex printStackTrace();}return false;}// System out println( 提示信息: +message);map put( message message);return true;}

public static void main(String[] args) throws FileNotFoundException IOException InterruptedException {EmailWriteToFile o = new EmailWriteToFile();o setSmtpServer( localhost );o setFrom( );o setDisplayName( TOM );o setTo( );o setSubject( Test Subject );o setContent( Test Content );o setCharset( GBK );o addFile( e:/读我 txt );o send();Process p = Runtime getRuntime() exec( cmd /C start msimn exe /eml:d:/test eml );

lishixinzhi/Article/program/Java/hx/201311/25757

什么是JavaMail,求完整的学习资料。

JavaMail是用JAVA处理电子邮件的开发包,这个包本身就带了说明文档和示例,你对着例简族袭子参考一下就会用了。

下面是一个简单的发邮件的代码,你可以参考一下:

import javax.mail.*;

import javax.mail.internet.*;

import java.util.*;

import javax.activation.*;

public class SendMail {

private String host = ""; // smtp服务器

private String from = ""; // 发件人地址

private String to = ""; // 收件人地址

private String affix = ""; // 附件地址

private String affixName = ""; // 附件名称

private String user = ""; // 用户名

private String pwd = ""; // 密码

private String subject = ""; // 邮件标题

private String content = "";// 邮件内容

public void setAddress(String from, String to, String subject) {

this.from = from;

this.to = to;

this.subject = subject;

}

public void setAffix(String affix, String affixName) {

this.affix = affix;

this.affixName = affixName;

}

public void setContentText(String content) {

if (content != null)

this.content = content;

}

public void send(String host, String user, String pwd) {

this.host = host;

this.user = user;

this.pwd = pwd;

Properties props = new Properties();

// 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)

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

// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证

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

// 用刚刚设置好的props对象构建一个session

Session session = Session.getDefaultInstance(props);

// 有了这句便可以在发送邮件的过程中在console处显示过程信息穗和,供调试使

// 用(你可以在控制台(console)上看到发送邮件的过程)

session.setDebug(true);

// 用session为参数定义消息对象

MimeMessage message = new MimeMessage(session);

try {

// 加载发件人地址

message.setFrom(new InternetAddress(from));

// 加载收件人地址

message.addRecipient(Message.RecipientType.TO, new InternetAddress(

to));

// 加载标题

message.setSubject(subject);

// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件

Multipart multipart = new MimeMultipart();

// 设置邮件的拦兄文本内容

BodyPart contentPart = new MimeBodyPart();

contentPart.setText(content);

multipart.addBodyPart(contentPart);

// 添加附件

BodyPart messageBodyPart = new MimeBodyPart();

DataSource source = new FileDataSource(affix);

// 添加附件的内容

messageBodyPart.setDataHandler(new DataHandler(source));

// 添加附件的标题

// 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码

sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();

messageBodyPart.setFileName("=?GBK?B?"

+ enc.encode(affixName.getBytes()) + "?=");

multipart.addBodyPart(messageBodyPart);

// 将multipart对象放到message中

message.setContent(multipart);

// 保存邮件

message.saveChanges();

// 发送邮件

Transport transport = session.getTransport("smtp");

// 连接服务器的邮箱

transport.connect(host, user, pwd);

// 把邮件发送出去

transport.sendMessage(message, message.getAllRecipients());

transport.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("----本程序用username@163.com发送邮件!----");

System.out.println("输入目的邮箱:");

String desAddress = sc.nextLine().trim();

System.out.println("输入标题:");

String title = sc.nextLine();

SendMail cn = new SendMail();

System.out.println("输入邮件内容,输入OK结束:");

String contentText = "";

String tmp = "";

while (!(tmp = sc.nextLine()).equalsIgnoreCase("OK")) {

contentText += tmp;

}

System.out.println("是否添加附件Y(es) or N(o)?");

String add = sc.nextLine().toCharArray()[0] + "";

if (add.equalsIgnoreCase("y")) {

System.out.println("输入附件的全路径:");

String FilePath = sc.nextLine().trim();

cn.setAffix(FilePath,

FilePath.split("\\\\")[FilePath.split("\\\\").length - 1]);

}

// 设置发件人地址、收件人地址和邮件标题

cn.setAddress("username@163.com", desAddress, title);

// 设置邮件的文本内容

cn.setContentText(contentText);

// 设置要发送附件的位置和标题

// 设置smtp服务器以及邮箱的帐号和密码

cn.send("smtp.163.com", "username", "password");

}

}

javamail版本替换后不生效

如果您已经将 JavaMail 的版本替换,但是程序仍然使用旧版本的 JavaMail,可能是因为以下原因:

1. classpath 没有正确配置:请确保已将新版的 JavaMail 相关 jar 包放到 classpath 中,并且路径正确。

2. 缓存问题:有可能您之前已经引入了旧版本的 JavaMail,并缓存了相关类。可以尝试清空缓存,让程序重新加载新版本的 JavaMail。方法详见敬缺下方:

Windows 系统:

1) 打开命令提示符窗口。

2) 输入“set CLASSPATH=”,然后按渣蚂下回车键。

3) 输入“set JAVA_HOME=”,然后按下回车键。

4) 关闭命令提示符窗口,重新运行程序。

Linux/Unix 系统:

1) 打开终端窗口。

2) 输入“export CLASSPATH=”。

3) 输入“export JAVA_HOME=”。

4) 关闭终端窗口,重新运行程序。

3. 代码中直接指定了旧版的 JavaMail:请检查代码中是否有明确指定旧版的 JavaMail 相关类的代码,如果有,请将其修改为使用新如稿埋版的 JavaMail。

如果以上解决方案都无效,可能需要更仔细地检查程序中的配置和代码,寻找问题所在。

关于javamail和javamail发送邮件带附件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-14 07:04:16
收藏
分享
海报
28
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了