java发送邮件

preview
共8个文件
class:2个
prefs:2个
project:1个
需积分: 0 1 下载量 95 浏览量 更新于2013-04-16 收藏 373KB ZIP 举报
Java发送邮件是Java编程中的一项常见任务,主要依赖于JavaMail API。JavaMail API是一个开源的、跨平台的API,允许Java程序通过SMTP(简单邮件传输协议)或其他邮件传输协议发送和接收邮件。在这个简单的实例中,我们将探讨如何使用Java发送邮件以及可能遇到的问题和解决方案。 你需要在项目中引入JavaMail相关的库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> ``` 如果没有使用Maven,可以下载所需的jar包,如`mail.jar`和`activation.jar`,并将其添加到项目的类路径中。 接下来,我们来看一个简单的Java发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class SendMailExample { public static void main(String[] args) { String to = "recipient@example.com"; String from = "sender@example.com"; String host = "smtp.example.com"; Properties properties = System.getProperties(); properties.put("mail.smtp.host", host); Session session = Session.getDefaultInstance(properties); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject("Java邮件发送测试"); message.setText("这是来自Java的邮件测试。"); Transport.send(message); System.out.println("邮件已发送成功!"); } catch (MessagingException mex) { mex.printStackTrace(); } } } ``` 在这个例子中,我们设置了发件人、收件人、邮件主题和内容,并通过`Transport.send()`方法发送邮件。注意,你需要将`host`替换为你的SMTP服务器地址,通常可以从你的邮件服务提供商那里获取。 如果遇到“发送报错”的问题,可能是因为JavaMail API与MyEclipse内置的邮件库冲突。解决方法正如描述中所述,可以尝试删除MyEclipse中的mail包,确保只使用你引入的第三方库。 此外,有些邮件服务提供商可能需要身份验证,这时需要设置用户名和密码: ```java properties.put("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("your_username", "your_password"); } }; session = Session.getInstance(properties, auth); ``` 另外,如果SMTP服务器需要SSL/TLS加密,还需要配置: ```java properties.put("mail.smtp.socketFactory.port", "465"); properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.put("mail.smtp.socketFactory.fallback", "false"); properties.put("mail.smtp.starttls.enable", "true"); ``` 以上就是使用Java发送邮件的基本步骤和可能遇到的问题。通过理解这些知识点,你可以创建一个能够适应各种邮件服务的邮件发送程序。在实际应用中,还可以添加附件、设置HTML格式的邮件内容等高级功能。