java发送邮件设置端口_如何更改JavaMail端口
我正在使用JavaMail编写一个小型Java应用程序,该应用程序向用户发送自动电子邮件。他们可以在两个端口之间选择(现在):25和587。可以通过GUI上的单选按钮选择端口。
我添加了一个测试按钮,以允许用户测试电子邮件设置(包括端口)。但是,由于某种原因,一旦用户尝试发送测试电子邮件,就无法更改端口。Javamail将始终使用原始测试电子邮件的端口。
示例:用户尝试在端口25上发送电子邮件,而JavaMail表示无法在端口25上连接(例如,SMTP主机使用另一个端口)。用户单击端口587,然后尝试发送新电子邮件。JavaMail抛出错误,再次无法连接端口25。
我对为什么感到困惑。每次发送新的测试电子邮件时,都会创建一个全新的SendMailUsingAuthentication对象。在该类中,属性始终会重置为正确的端口。据我所知,每次调试时,所有变量都是正确的,并且与正确的端口相关联。我缺少运输中发生的事情吗?
在前端GUI中:
private void testButtonActionPerformed(java.awt.event.ActionEvent evt) {
int port = port25RadioButton.isSelected() ? PORT_25 : PORT_587;
notifier = new SendMailUsingAuthentication(hostNameTextField.getText(),
userTextField.getText(), getPassword(), emailTextField.getText().split(","),port);
Thread wait = new Thread(new Runnable() {
public void run() {
try {
changeStatusText("Sending test email...");
notifier.postTestMail();
changeStatusText("Test email sent.");
} catch (AddressException ex) {
changeStatusText("Error. Invalid email address name.");
} catch (MessagingException ex) {
changeStatusText("SMTP host connection refused.");
System.err.println(ex.getMessage());
} catch (Exception ex) {
System.err.println(ex);
}
}
});
wait.start();
}
在电子邮件发件人类别中:
public void postTestMail() throws MessagingException, AddressException{
String[] testReciever = new String[1];
testReciever[0] = emailList[0];
postMail(testReciever, "Test email.", "Your email settings are successfully set up.", emailFromAddress);
}
private void postMail(String recipients[], String subject,
String message, String from) throws MessagingException, AddressException {
//Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.port", smtpPort);
props.put("mail.smtp.host", smtpHostName);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", true);
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(false);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
java发送邮件设置端口_如何更改JavaMail端口相关推荐
- java发送邮件设置邮件头的MessageId解决办法,发送邮件代码,u-mail的示例代码
参考链接 业务描述:使用U-Mail进行邮件的发送,需要自定义任务标识,用于更新本地邮件的发送状态 说明:直接使用setHeader()是失效的 解决方式: public class MyMimeMe ...
- java jdk设置字符集_使用JDK 11在Java字符串上的新方法
java jdk设置字符集 Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布. 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串: ...
- 打开端口_打印机ip及端口设置
越洋帮路由网原创:文章是关于"打印机ip及端口设置"的相关知识分享,希望可以帮到大家. - 素材来源网络 编辑:小易. 随着科学技术的发展,各种技术成果也进入到千家万户,近日,有人 ...
- java获取空闲端口_获取系统空闲端口
端口取值范围 以下搜自互联网 一般用到的是1到65535,其中0不使用,1-1023为系统端口,也叫BSD保留端口;1024-65535为用户端口,又分为: BSD临时端口(1024-5000)和BS ...
- linux如何改sftp端口,CentOS如何更改SFTP端口
SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件.本文介绍了如何在Linux中更改默认的SFTP端口.我们还将向您展示如何配置防火墙以允许在新端口上使用. SF ...
- 1个ieee1394端口_如何使用圆形端口进行波导激励和终止
小编引言: 近期微信公众号开始试行乱序推送,为了让您能够持续阅览到多物理场仿真相关的精选文章和视频内容,并在第一时间获取 COMSOL 组织的各类培训和免费网络研讨会的通知信息,建议点击上方蓝字 &q ...
- 华为云占用443端口_关于XAMPP默认端口80和443被占用的问题
关于安装xampp-win32-1.8.1-VC9-installer.zip后启动时候报端口80和443被占用的问题解决 xampp-win32-1.8.1-VC9-installer.zip下载地 ...
- python测试udp端口_怎样测试UDP端口
文章概述:怎样测试远程UDP端口,我们一般情况下,应用服务都使用的TCP端口,但是某些情况下,我们也需要开启UDP端口.本文简要描述怎样测试UDP端口是否正常? TCP端口大家都知道,比如80端口,可 ...
- java调用siri 语言_如何更改Siri的声音,口音,性别和语言
java调用siri 语言 Most of us are familiar with Siri as an American female voice. What you may not realiz ...
最新文章
- nginx将泛解析的匹配域名绑定到子目录配置方法
- Android8.0运行时权限策略变化和适配方案
- 在嵌入式学习过程中,很多人都有这样的困惑!——为什么要学习嵌入式技术?...
- 苹果M1芯片升级果然很炸场:性能暴涨功耗速降!但最香新品竟是无降噪AirPods 3...
- PHP 将二叉查找树转换为双向链表,要求不能创建新节点,只能调节节点指针
- 测试GPU的材质填充率
- ShopEx 手动使用分类做导航时,获取当前导航的焦点状态
- Linux Storage I/O Stack v1.0
- 活动推荐 | 2018网易未来科技峰会剧透!今年最热的会是什么?
- express 设置handlebars模板引擎
- NYOJ题目79-拦截导弹(最长递减子序列)
- Nginx防盗链、访问控制、解析php相关配置、Nginx代理
- HTML基本语法总结
- 线性链表头插法,插入,删除操作(完整代码)
- 51单片机usb烧录电路_51单片机怎么用usb烧写程序
- 售前的价值在哪里?这个问题不简单
- 只有一个文件的开源富文本编辑器,麻雀虽小五脏俱全就是它了
- “感动中国”2012年度人物颁奖词
- 基本DOS命令---6.关机重启操作命令
- python numpy安装失败_Mac下安装Python的numpy库失败的解决方法
热门文章
- 12306网站秒杀火车票 谁是幕后推手?
- 系统盘没装多少东西,为什么电脑会卡?
- LADP Admin
- 5G PDSCH物理层过程
- 5G/NR 如何确定PDSCH的MCS和TB size学习总结
- 6.19日更新下 饿了么/美团脚本相关问题专栏
- 基于多项式插值的亚像素边缘定位算法(python)
- 乐优商城练手项目相关技术总结
- 给定一个正整数n, 输出1到n的所有排列 如输入 3 输出 123, 132, 213, 231, 312, 321 (Java实现)
- WINS服务器和DNS服务器有什么区别?