使用JavaMail连接带有TLS的SMTP

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class SendMailBySMTP {
String d_email = "ranxiaos@cn.ibm.com"; 
    String d_password = "email2read";
    String d_host = "smtp.sendgrid.net"; 
    String d_port = "587";
    String m_to = "jichenw@cn.ibm.com";
    String m_subject = "Testing";
    String m_text = "Hey, this is the testing email from spie test email.";


public SendMailBySMTP() {
Properties props = new Properties();
props.put("mail.smtp.user", d_email);
props.put("mail.smtp.host", d_host);
props.put("mail.smtp.port", d_port);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
// props.put("mail.smtp.debug", "true");
// props.put("mail.smtp.socketFactory.port", d_port);
// props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
// props.put("mail.smtp.socketFactory.fallback", "false");


SecurityManager security = System.getSecurityManager();


try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
// session.setDebug(true);


MimeMessage msg = new MimeMessage(session);
msg.setText(m_text);
msg.setSubject(m_subject);
msg.setFrom(new InternetAddress(d_email));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to));
Transport.send(msg);
} catch (Exception mex) {
mex.printStackTrace();
}
}


public static void main(String[] args) {
SendMailBySMTP blah = new SendMailBySMTP();
}


private class SMTPAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(d_email, d_password);
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用 JavaMail API 查看有附件的邮件的示例代码: ```java import java.io.IOException; import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Store; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMultipart; public class MailAttachmentViewer { public static void main(String[] args) throws Exception { Properties properties = new Properties(); properties.put("mail.store.protocol", "imaps"); properties.put("mail.imaps.host", "imap.gmail.com"); properties.put("mail.imaps.port", "993"); properties.put("mail.imaps.starttls.enable", "true"); Session emailSession = Session.getDefaultInstance(properties); Store store = emailSession.getStore("imaps"); store.connect("your-email@gmail.com", "your-password"); Folder emailFolder = store.getFolder("INBOX"); emailFolder.open(Folder.READ_ONLY); Message[] messages = emailFolder.getMessages(); for (int i = 0; i < messages.length; i++) { Message message = messages[i]; System.out.println("Subject: " + message.getSubject()); System.out.println("From: " + message.getFrom()[0]); Object content = message.getContent(); if (content instanceof Multipart) { Multipart multipart = (Multipart) content; for (int j = 0; j < multipart.getCount(); j++) { BodyPart bodyPart = multipart.getBodyPart(j); if (bodyPart instanceof MimeBodyPart) { MimeBodyPart mimeBodyPart = (MimeBodyPart) bodyPart; if (mimeBodyPart.getDisposition() != null && mimeBodyPart.getDisposition().equalsIgnoreCase("attachment")) { System.out.println("Attachment found: " + mimeBodyPart.getFileName()); // if you want to download the attachment, use the following code: // mimeBodyPart.saveFile("/path/to/save/attachment/" + mimeBodyPart.getFileName()); } else { System.out.println("Text: " + mimeBodyPart.getContent().toString()); } } } } else { System.out.println("Text: " + content.toString()); } } emailFolder.close(false); store.close(); } } ``` 请注意,如果您想下载附件,您需要取消注释示例代码中的一行,将附件保存到您的本地计算机上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃鸳鸯锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值