寒假学习了ssm,就把之前看过的一个商城项目用ssm重构了。

然后在本地一切都正常,放到个人服务器上就凉了。

因为这个项目注册需要邮箱激活,然后就在发邮件的时候出了问题。

一、发送端口

因为源程序是用端口发email的,然后我排雷排了好久才看到那个异常,

具体是什么我忘了记下来了,反正是说25端口不能用。

后来我就查资料,说是服务器商为了防止垃圾邮件,就把25端口禁掉了。

然后我就想,这还不简单,在安全组开放不就行了,然而打脸的是,还真不行。

要想开放,必须得找服务器商开启,还很麻烦,只能换一条路了。

后面看到腾讯邮箱的文档,才知道可以用别的端口。

文档链接

其中有

发送端口不用25,用或者就可以了,我这里用的是465

二、邮件乱码

好不容易能发送了邮件,然而邮件却是乱码,崩溃ing

继续找解决办法,网上各种方法都试过了,都不行。

功夫不负有心人,后来我狠着头皮看stackoverflow,慢慢的看,就找到了解决方法。

一试还真行。

首先是标题部分,也就是subject

 //修改编码
String subject = "邮件标题";
String encodedSubject = MimeUtility.encodeText(subject, MimeUtility.mimeCharset("gb2312"), null);
msg.setSubject(encodedSubject);

然后是正文部分

 //设置邮件消息
msg.setContent(emailContent, "text/html;charset=UTF-8");

我这样修改之后就解决了

我之前发正文的代码是

// msg.setText(emailContent);

总算解决了。可以安心返校了,寒假过年也没偷懒,把这个项目重构让我对ssm有了更深的应用了。嘻嘻。

然后我把Demo挂在我的服务器上了,可以玩一下。

服务器Demo

项目github地址

欢迎fork或star! 

javaEmail发邮件是问号乱码,已解决的更多相关文章

  1. .net发邮件 附件文件名乱码

    .net发邮件 附件文件名乱码,可以下载以下补丁安装. https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.asp ...

  2. Oracle数据库PL/SQL Developer查询结果显示问号乱码的解决方法

    PL SQL Developer,查询结果中的中文变成了一堆问号,SQL语句中的中文被提示invalid character,不能识别. 解决方法: 执行,select userenv('langua ...

  3. 通过Java创建XML(中文乱码已解决)

    package com.zyb.xml; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.Ou ...

  4. yii下使用oracle中文都变成问号乱码的解决方法

    在配置文件中,一般会用以下配置: 'db_oracle'=>array( 'class' => 'CDbConnection', 'connectionString'=>'oci:d ...

  5. 用python给邮箱发邮件,问题,以及解决方法。

    模版 import smtplib #导入相关模块 from email.mime.text import MIMEText from email.utils import formataddr de ...

  6. Windows平台下在Emacs中使用plantuml中文乱码问题(已解决)

    Windows平台下在Emacs中使用plantuml中文乱码问题(已解决) */--> code {color: #FF0000} pre.src {background-color: #00 ...

  7. 【已解决】BeautifulSoup已经获得了Unicode的Soup但是print出来却是乱码

    [问题] 某人遇到的问题: 关于BeautifulSoup抓取表格及SAE数据库导入的问题(跪求大神帮忙) 简单说就是: 用如下代码: ? 1 2 3 4 5 6 7 import re,urllib ...

  8. 关于163发邮件报错535 Error:authentication failed解决方法

    关于发邮件报错535 Error:authentication failed解决方法 调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授 ...

  9. 微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint:解决办法【已解决】

    微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription ...

随机推荐

  1. SQL SERVER数据库的简单介绍

    一.数据库技术的发展 数据库技术是应数据管理任务的需求而产生的,先后经历了人工管理.文件系统.数据库系统等三个阶段. 二.关系型数据库 SQL Server属于关系型数据库. 关系模型 以二维表来描述 ...

  2. The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "SDSSDFCC" was unable to begin a distributed transaction.

    Question: SQL SERVER 通过Linkserver连接A和B 2台,A对B执行单条的增删改查没有异常(没有配置DTC) 但是开启事务后就会出现报错 Solution: 在A和B上配置D ...

  3. 【Teradata SQL】一个字段为空即取另外一个字段(连续取4个字段)-case when

    目标:如果col1为空则取col2的值,如果col2也为空则取col3的值,如果col3还为则取col4的值,如果四个字段均为空则取默认值 1.数据准备 create multiset table t ...

  4. Java Thread.join的作用和原理

    很多人对Thread.join的作用以及实现了解得很少,毕竟这个api我们很少使用.这篇文章仍然会结合使用及原理进行深度分析 内容导航 Thread.join的作用 Thread.join的实现原理 ...

  5. mysql性能优化之数据库级别优化--优化sql语句

    一  优化SELECT语句 1.1 WHERE子句优化 本文暂时只讨论可以处理WHERE子句的优化,下面的一些实例使用SELECT语句,但是相同的优化同样适用DELETE和UPDATE语句中的WHER ...

  6. python3 - 文本读音器

    本篇分享的是使用python3制作一个文本读音器,简单点就是把指定的文本文字转语音说出来:做这么个小工具主要是为了方便自己在平时看一些文章眼累的时候,可通过语音来帮助自己,当然如果你是小说迷,可以扩展 ...

  7. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1

    代码已上传Github+Gitee,文末有地址 书说上文<从壹开始前后端分离[ .NET Core2.0 Api + Vue 2.0 + AOP + 分布式]框架之十 || AOP面向切面编程浅 ...

  8. redis的list类型!!!!

    list类型 list类型是按照插入顺序排序的字符串链表,可在(left)头部和(right)尾部插入值,效率高. list增操作 若插入时,该键不存在,则会创建.若所有元素被移除,该键也会被删除. ...

  9. 记一次工作失误,openresty报502错误

    调试落地项目,代理跳转接口报502错误. 一开始认为阿里云tomcat有误,后面发现别的地址代理跳转有效. 开始配置跳转地址,一直折腾半天不好使.后面才知道,应用服务器和数据库服务器是分开部署的.一直 ...

  10. 【重学计算机】计组D2章:数据表示

    1.基本概念 真值:+0101,-0100:机器数: [x]原=0101 2.几种机器数 原码:x = -0101,[x]原 = 1101 反码:x = -0101,[x]反 = 1010 补码:x ...