javamail发邮件全过程 ( 转载文章)
关键字: javamail
javamail和OutLook都是第一次接触,因此遇到一些不小麻烦。所以写下来记录着以备以后不时之需。
下面是客户端的设置过程:
以中文版 Outlook Express 6 为例,请按以下步骤,手动配置你的客户端:
1、打开 Outlook Express 后,单击窗口中的“工具”菜单,选择“帐户”;
2、点击“邮件”标签,点击右侧的“添加”按钮,在弹出的菜单中选择“邮件”;
3、弹出的对话框中,根据提示,输入你的“显示名”, 然后点击“下一步”;
4、输入你的电子邮件地址,点击“下一步”
5、输入你邮箱的 POP 和 SMTP 服务器地址:
pop: pop.126.com
smtp: smtp.126.com
再点击“下一步”;
6、输入你的帐号及密码(此帐号为登录此邮箱时用的帐号,仅输入 @ 前面的部分),再点击“下一步”;
7、单击“完成”按钮保存你的设置;
8、设置 SMTP 服务器身份验证:在“邮件”标签中,双击刚才添加的帐号,弹出此帐号的属性框;
9、请点击“服务器”标签,然后在“发送邮件服务器”处,选中“我的服务器要求身份验证”选项,并点击右边“设置”标签,选中“使用与接收邮件服务器相同的设置”。
10、点击“确定”,然后“关闭”帐户框。
注意:现在网易的免费邮箱已经不提供POP3/SMTP功能了,因此我选择用QQ邮箱进行设置,但QQ邮箱的POP3/SMTP默认是关闭的,应该在邮箱里设置下,具体点设置->帐户里有。
开始我没有配置客户端就运行下面的程序出现了很多问题如下显示为验证出错,呵呵,那么客户端配置好之后现运行下面的程序就完全OK啦。
454 Authentication failed
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
下面是JAVAMAIL发邮件的主程序(注意发邮件是需要验证的)
public class MailUtil {
static int port=25;
static String server="smtp.qq.com";
static String from="zxlcd520@qq.com";
static String user="zxlcd520";
static String password="*****";
public static void sendEmail(String email,String subject,String body){
try{
Properties props=new Properties();
props.put("mail.smtp.host",server);
props.put("mail.smtp.port",String.valueOf(port));
props.put("
mail.smtp.auth","true");//验证
Transport transport=null;
MyAuthenticator myauth = new MyAuthenticator(from, password);
Session session=Session.getDefaultInstance(props,myauth);
session.setDebug(true);
transport=session.getTransport("smtp");
transport.connect(server,user,password);
MimeMessage msg=new MimeMessage(session);
msg.setSentDate(new Date());
InternetAddress fromAddress=new InternetAddress(from);
msg.setFrom(fromAddress);
InternetAddress[] toAddress=new InternetAddress[1];
toAddress[0]=new InternetAddress(email);
msg.setRecipients(Message.RecipientType.TO,toAddress);
msg.setSubject(subject);
msg.setText(body);
msg.saveChanges();
transport.sendMessage(msg,msg.getAllRecipients());//System.out.print("ok");
//Transport.send(msg);
}catch(NoSuchProviderException e){
e.printStackTrace();
}catch(MessagingException e){
e.printStackTrace();
}
}
}
class MyAuthenticator extends javax.mail.Authenticator {
private String strUser;
private String strPwd;
public MyAuthenticator(String user, String password) {
this.strUser = user;
this.strPwd = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(strUser, strPwd);
}
}
补充:上面的程序完全正确了,我在单独的Main函数中测试过能发邮件,但是在web工程中却出现下面的异常java.lang.NoClassDefFoundError: javax/mail/MessagingException
工程中J2EE库由myeclipse自动提供,当然也包含了 mail.jar啦但运行时却说找不到MessagingException类~显然是mail.jar和activation.jar两个包没有在 classpath,tomcat运行的时候找不到相应的类咯~因此手动加到工程中就OK啦~
分享到:
相关推荐
《基于Javamail的邮件收发系统》是一份完整的毕业设计资料,涵盖了从理论到实践的全过程,包括Word论文、开题报告、任务书以及答辩PPT。这个项目主要探讨了如何使用JavaMail API来实现一个高效、稳定的邮件收发系统...
这些资源将指导你完成从创建简单的文本邮件到处理复杂MIME邮件的全过程,对于初学者来说是非常宝贵的资料。 总的来说,JavaMail是一个强大且灵活的库,它为Java开发者提供了全面的邮件处理能力。通过学习和实践,你...
JavaMail 是一个开源库,它提供了在 Java 应用程序...总之,这个基于Javamail的邮件收发系统项目是一个全面的学习资源,涵盖了从理论知识到实际开发的全过程,对于想要深入理解和应用 JavaMail API 的开发者极具价值。
《基于Javamail的邮件收发系统》是一套完整的软件开发项目,涵盖了从系统设计、理论研究到实际实现的全过程。在这个项目中,开发者利用JavaMail API来构建一个能够发送和接收电子邮件的系统,这在企业级应用、自动化...
《基于Javamail的邮件收发系统》是一款利用JavaMail API实现的电子邮件应用程序,它涵盖了从发送到接收邮件的全过程。此系统适用于个人或企业的日常通信,同时也是毕业设计的一个典型示例,可以帮助学生理解并掌握...
JavaMail 是一个开源的 Java...综上所述,这个基于 Javamail 的邮件收发系统项目不仅涉及到邮件处理的技术实现,还涵盖了项目管理和学术研究的全过程,对于学习和实践邮件通信技术以及软件开发流程具有很高的参考价值。
在JavaMail中,收发邮件的基本步骤包括:创建Session(会话)、创建MimeMessage(邮件对象)、设置邮件属性(如发件人、收件人、主题、正文等)、连接SMTP服务器发送邮件,或使用POP3/IMAP连接服务器接收邮件。...
2. Message:表示一封邮件,包含了邮件的所有信息,如发件人、收件人、主题、正文、附件等。 3. Folder:代表邮箱中的文件夹,如“收件箱”、“草稿箱”等。 4. Address:表示邮件地址,包括 `InternetAddress` 类型...
《基于Javamail的邮件收发系统》项目是一套完整的Java编程实现的邮件系统,它涵盖了从系统设计、需求分析到开发实现的全过程。在这个项目中,开发者使用了JavaMail API来处理邮件的发送与接收,实现了高效、稳定且...
JavaMail 是一个强大的开源库,专门用于在Java...通过这个压缩包,学习者不仅可以获得实际的邮件系统源代码,还可以了解到整个项目从概念到实施的全过程,对于提升JavaMail的使用技能和理解邮件系统设计非常有帮助。
这个基于Javamail的邮件收发系统是一个典型的毕业设计项目,它涵盖了从需求分析到系统实现的全过程,包括开题报告、任务书、外文翻译、文献综述以及答辩PPT等完整资料。这个项目主要涉及以下几个核心知识点: 1. **...
总的来说,这个毕业设计项目涵盖了从需求分析、技术选型、系统设计、编程实现到学术写作的全过程,是学习和实践JavaMail技术的一个综合案例。对于学习者来说,这不仅是一次提升技术能力的机会,也是锻炼项目管理和...
总的来说,这个毕业设计项目是学习JavaMail API和邮件系统开发的绝佳实践,涵盖了从理论到实践的全过程,对于提升学生的实际编程能力和研究能力大有裨益。通过完成这个项目,学生不仅可以掌握JavaMail的使用,还能...