javamail收发邮件问题

发布于 2021-11-16 05:44:47 字数 160 浏览 415 评论 6

公司电脑,在公司通过Foxmail客户端可以收发邮件,而自己写的javaMail收发邮件程序却无法收发邮件;该javamail程序在自己家里网络环境下运行正常(可以收发邮件),公司跟家里网络环境的唯一区别是公司上网需要代理。我猜想该问题可能是代理原因,如果是这个原因,那么如何解决呢?还请Oschina上的高手指点解答。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

断爱 2021-11-22 15:55:48

@Singer:我上网用的公司https协议方式的代理,不需要账户密码。

醉酒的小男人 2021-11-22 12:30:52

@等PM:你给的方式也尝试过,问题仍未解决。

好听的两个字的网名 2021-11-22 07:08:08

 用得哪种代理方式 有的代理是要帐号密码的

奢华的一滴泪 2021-11-21 11:47:04

这是我用到的一段代码,可以成功发送。

props.put("proxySet","true"); 
		props.put("proxyHost","proxy.XXX.com.cn"); 
		props.put("proxyPort","80"); 
		props.put("mail.smtp.host", "smtp.qq.com");
		props.put("mail.smtp.auth", "true");
		props.put("mail.debug", "true");
勿忘初心 2021-11-21 02:52:04

嗯,我用的Proxifier代理软件,看到网上说javamail设置代理只需如下设置:

Properties props=System.getProperties();//获取系统属性

props.put("http.proxySet","true");//设置代理主机参数

props.put("http.proxyHost","172.28.2.1");

props.put("http.proxyPort","85");

我也按照这种方法试过,

下面是我的程序代码:

 

public static void main(String[] args) {
  try {
   String to = "434349528@qq.com"; // 获取收件人
   String subject = "邮件发送测试"; // 获取邮件主题
   String messageText = "邮件发送测试内容。"; // 获取邮件内容

   // 建立邮件会话
   Properties props = System.getProperties();
   //设置代理服务器参数
   props.put("proxySet","true");
   props.put("http.proxyHost","172.17.18.80");
   props.put("http.proxyPort","8080");
   props.setProperty("socksProxySet", "true");
         props.setProperty("socksProxyHost", "172.17.18.80");
         props.setProperty("socksProxyPort", "8080");     
   props.put("mail.smtp.host", MailServer.mailHost); // 指定SMTP协议
   props.put("mail.smtp.auth", "true"); // 指定需要向服务器端提交身份认证
   Session sess = Session.getInstance(props); // 获取session
   sess.setDebug(true); // 设置调试标志
   MimeMessage message = new MimeMessage(sess); // 新建一个消息对象

   // 设置发件人
   InternetAddress from_mail = new InternetAddress(MailServer.mailSenderUser);
   message.setFrom(from_mail);
   // 设置收件人
   InternetAddress to_mail = new InternetAddress(to);
   message.setRecipient(Message.RecipientType.TO, to_mail);
   // 设置主题
   message.setSubject(subject);
   // 设置内容
   message.setText(messageText);
   // 设置发送时间
   message.setSentDate(new Date());
   // 发送邮件
   message.saveChanges(); // 保证报头域同会话内容保持一致
   Transport transport = sess.getTransport("smtp");
   transport.connect(MailServer.mailHost, MailServer.mailSenderUser, MailServer.mailSenderPassword); // 建立与邮件服务器之间的连接
   transport.sendMessage(message, message.getAllRecipients()); // 发送邮件
   transport.close(); // 关闭与邮件服务器之间的连接
   System.out.println("发送邮件产生的成功。");
  } catch (Exception e) {
   e.printStackTrace();
   System.out.println("发送邮件产生的错误:" + e.getMessage());
  }
 }

 

程序还是失败,请问如何解决?

别再吹冷风 2021-11-17 17:07:00

你Foxmail客户端也要手动设置代理才能发的吧。那就是javamail没设置代理了?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文