spring框架中org.springframework.mail.javamail这包实际上是对java.mail做而二次封装。发送邮件依然通过javamail实现。
而在官方文档中说明,javamail是不可以通过http代理发送邮件的。只能通过socks V4或者V5连接网络发送邮件。
目前的环境是,内网机器能过某个http代理连接网络上网。但是却没有提供socks代理服务器。也就是说,javamail直接通过这个代理服务器是不可能实现发送邮件功能的。
解决方案:
使用Httport这个二次代理软件,把远程smtp服务器映射到本机端口。然后设置javamail通过这个映射端口发送邮件。如smtp服务器映射端口为9025,则配置javamail的smtp服务器为:localhost:9025,则可以在内网只有http代理服务器的环境下实现发送邮件的功能。
示例代码:
JavaMailSender的配置:
<!-- javaMailSender -->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="defaultEncoding" value="${email.encoding}"></property>
<property name="host" value="${email.host}"></property>
<property name="port" value="${email.port}"></property>
<property name="username" value="${email.username}"></property>
<property name="password" value="${email.password}"></property>
<property name="protocol" value="${email.protocal}"></property>
<property name="javaMailProperties">
<props>
<!-- 让服务器检验用户密码是否正确 -->
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">180000</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
首先 必须引进来三个jar包:
compile '
java
x.
mail
:
mail
:1.4.7'compile 'org.apache.commons:commons-e
mail
:1.3.2'compile '
java
x.activation:activation:1.1'这是我gradle配置文件的配制方法。
1.
Mail
对象 里面包含
发送邮件
的信息
import ...
spring
boot+Thymeleaf实现发送E
mail
模板邮件
如何在
Spring
Boot 应用中
发送邮件
以及使用非常简单强大的Thymeleaf模板引擎来制作邮件内容。
一、授权码
常用的电子协议有POP3,SMTP,IMAP,协议的具体区别就不进行详细介绍了。这里选择smtp协议进行演示。登录
邮箱
,在设置中找到协议地址,点击开启。授权码只会显示一次,需要保存好。
下面是126
邮箱
对应的三种协议主机地址:
smtp.126.com
pop.126.com
imap.126.com
二、导入pom依
e
mail
_username=782679034@qq.com
#
邮箱
密码
#使用qq
邮箱
进行发送需要注意:首先需要开启:POP3/SMTP服务,其次
发送邮件
的密码需要使用在开启POP3/SMTP服务时候腾讯提供的第三方客户端...
开启后会得到一个16位授权码, 作为第三方使用邮件服务器的登录凭证.
注意: 修改
邮箱
密码后, 授权码会失效, 需要重新获取.
步骤2: 编写配置文件applicationContext-e
mail
.xml(此处使用xml配置方式):
&amp;amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quo
不管是工厂还是外贸公司,或者是SOHO,利用“伪EDM邮件营销”都可以用最小的代价,来获取询盘和订单。
而“伪EDM邮件营销”的核心技术,则是“裙发邮件”。裙发邮件的作用:以最高效的方式把邮件推送给客户,增大询盘获取几率。
邮件营销能否取得成效的关键因素在于,你的邮件发送量能否达到一个“海量”的级别。
我们不要幻想发送了几百封,1000封开发信,就能获取询盘和订单,这个几率实在是太小太小了...
python标准库已包含对
http
的支持,通过很简单的办法就可以直接使用
http
代理
服务器获取网页数据:import
http
libhost,port = "192.168.131.54" , "8086" #
http
proxy server ip and portconn =
http
lib.
HTTP
Connection(host, port)conn.request(method,url)p...
我们是没办法使用
java
mail
通过一般的
代理
服务器
发送邮件
的,比如下面的代码是没有效果的:
Properties props = System.getProperties();
props.setProperty("proxySet","true");
props.setProperty("ProxyHost","192.168.155.1...
服务器间传送文件参考文章
http
://www.baeldung.com/
http
client-multipart-upload首先,引入发送
Http
请求的依赖<dependency> <groupId>org.apache.
http
components</groupId> <artifactId>
http
client</artifa...
HTTP
(超文本传输协议)是用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议基于TCP/IP(HTML文件、图片、查询结构等)采用C/S架构客户机通过浏览器去请求浏览器上就可以看到对应的图形界面,浏览器/服务器(B/S)Windows server IIS (Windows平台)apache(多平台)tomcat(多平台)nginx(多平台)在客户端使用浏览器通过URL向
HTTP
服务器发送请求URL(统一资源定位器):由三部分组成web服务器根据收到的请求直接向客户机响应信息针对于
HTTP
默
关于
Http
Entity的用法
Http
Entity表示
http
的request和resposne实体,它由消息头和消息体组成。
从
Http
Entity中可以获取
http
请求头和回应头,也可以获取
http
请求体和回应体信息。
Http
Entity的使用,与@RequestBody 、@ResponseBody类似。
Http
Entity的典型应用是配合RestTemplate,在微服务项目中的应用(参见API示例)
用户登录示例:
步骤一:在login.jsp发送ajax请求,发送之前添加请求头信息
[size=large]当
发送邮件
需要通过
代理
服务器来完成时,
java
mail
连接服务器时,也必须设置
代理
服务器的地址和端口。如果不设置
代理
,
java
mail
不能找到smtp服务器,会抛出异常。
设置
代理
和普通的
java
mail
连接设置只有一点不同,就是声明系统变量时稍作改变即可!
以下是设置
代理
服务器的代码行,
Properties props = System.getProp...
由于客户需要,本人开始尝试
JAVA
编码通过
HTTP
代理
发送邮件
。但一直出现“Sending the e
mail
to the following server failed : smtp.163.com:25”的异常错误。非常纠结,如果有高人看见这篇文章,请指点!
下面是具体实现方法:
public String send
Mail
ByProxy(String
mail
...
我们是没办法使用
java
mail
通过一般的
代理
服务器
发送邮件
的,比如下面的代码是没有效果的: Properties props = System.getProperties();
props.setProperty("proxySet","true");
props.setProperty("ProxyHost","192.168.155.1");
Spring
框架提供了
Java
Mail
Sender接口及其实现类
Java
Mail
SenderImpl,基于这个类可以更加方便实现
发送邮件
功能。
在web工程中,可以把
Java
Mail
Sender交由
Spring
IOC管理。如下面的配置:
<bean id="
java
Mail
Sender" class="org.
spring
framework.
mail
.
java
mail
.Jav...