gpt4 book ai didi

java - 通过java发送邮件: multiple sender with different mail id

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:55 25 4
gpt4 key购买 nike

我想向指定收件人发送一封邮件,但我的发件人可以有不同的邮件帐户,例如 Outlook、ymail 或 gmail。是否可以从不同的电子邮件 ID 向同一收件人发送电子邮件?我正在使用这段代码:

try
{final String from=request.getParameter("from");String smtpServ="",port="";final String pass=request.getParameter("pass");String to=request.getParameter("to");String subject=request.getParameter("subject");String body=request.getParameter("msg");if(from.contains("@gmail.com")){smtpServ="smtp.gmail.com";port="465";}else if(from.contains("@outlook.com") || from.contains("@hotmail.com")){smtpServ="smtp.live.com";port="587";}else if(from.contains("@ymail.com") || from.contains("@yahoo.com") || from.contains("@rocketmail.com") || from.contains("@yahoo.in")){smtpServ="smtp.mail.yahoo.com";port="465";}Properties props = System.getProperties();
// -- Attaching to default Session, or we could start a new one --

props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host",smtpServ);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", port);

Session session1 = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from,pass);
}
});Message message = new MimeMessage(session1);message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));

message.setSubject(subject);
message.setText(body);
// -- Set some other header information --

message.setHeader("MyMail", "Java Mail Test");
message.setSentDate(new Date());Transport.send(message);System.out.println("Message sent to"+to+" OK."); }
catch (Exception ex)
{ ex.printStackTrace();System.out.println("Exception "+ex); }

最佳答案

通过 Java 发送邮件(使用 Java Mail API)需要您设置一个 SMTP 主机,该主机将在正确的登录验证后将电子邮件发送给收件人。我使用带有 Gmail ID 的 Java Mail 并将 Gmail 作为 SMTP 主机服务器。一些电子邮件服务提供商不允许从他们自己的 Web 服务之外发送电子邮件(这使得它们与 Java Mail 不兼容)。

但是,为了支持多个发件人,您需要执行以下操作:

  1. 根据所使用的电子邮件 ID 将 SMTP 服务器更改为正确的主机。
  2. 每次更改发件人 ID 时,使用新的电子邮件地址和密码运行身份 validator 。
  3. 然后发送您的消息。

我的建议是在程序最初运行时存储这些发件人电子邮件 ID 和密码(以及 SMTP 主机),然后针对每个电子邮件 ID 和密码对重复上述步骤并进行所需的更改。

警告:

我认为最好坚持使用单一发件人,否则,不同发件人地址的多封内容相似的邮件可能会被收件人电子邮件服务提供商标记为垃圾邮件

关于java - 通过java发送邮件: multiple sender with different mail id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22879543/

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