gpt4 book ai didi

java - 如何使用与 PHP mail() 相同的机制在 Java 中发送邮件

转载 作者:行者123 更新时间:2023-12-03 06:27:33 24 4
gpt4 key购买 nike

我在从我的应用程序发送邮件时遇到问题。我无法在我的应用程序上使用简单的 SMTP 服务器。不知道如何用JAVA处理发送邮件。我应该使用与 PHP 的 mail() 使用相同/相似的机制。不幸的是我不知道该怎么做。

最佳答案

Java Mail API提供对发送和接收电子邮件的支持。 API 提供了一个插件架构,可以在运行时动态发现和使用供应商对其自己的专有协议(protocol)的实现。 Sun提供了一个引用实现,它支持以下协议(protocol):

  • 互联网邮件访问协议(protocol) (IMAP)
  • 简单邮件传输协议(protocol) (SMTP)
  • 邮局协议(protocol) 3 (POP 3)

以下是如何使用它的示例:

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

private String from;
private String to;
private String subject;
private String text;

public SendMail(String from, String to, String subject, String text){
this.from = from;
this.to = to;
this.subject = subject;
this.text = text;
}

public static void main(String[] args) {

String from = "abc@gmail.com";
String to = "xyz@gmail.com";
String subject = "Test";
String message = "A test message";
SendMail sendMail = new SendMail(from, to, subject, message);
sendMail.send();
}

public void send(){

Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
Session mailSession = Session.getDefaultInstance(props);
Message simpleMessage = new MimeMessage(mailSession);
InternetAddress fromAddress = null;
InternetAddress toAddress = null;
try {
fromAddress = new InternetAddress(from);
toAddress = new InternetAddress(to);
} catch (AddressException e) {
e.printStackTrace();
}

try {
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO, toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
Transport.send(simpleMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}

关于java - 如何使用与 PHP mail() 相同的机制在 Java 中发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14803761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com