精华内容
下载资源
问答
  • mailto是一种电子邮件协议,通过该协议可以创建一个指向电子邮件地址的超级链接,通过该链接可以在Internet发送电子邮件。好比在地址栏输入一个网址会打开一个网页一样,输入mailto:name@email.com,就会打开本地...

    利用mailto实现邮件发送

    1 mailto简介

    mailto是一种电子邮件协议,通过该协议可以创建一个指向电子邮件地址的超级链接,通过该链接可以在Internet中发送电子邮件。好比在地址栏输入一个网址会打开一个网页一样,输入mailto:name@email.com,就会打开本地邮件客户端,并将邮件发送给name@email.com。

    2 mailto的使用

    (1)使用语句

    <a href="mailto:name@email.com">Email</a>

    结合其参数使用该语句,参数介绍如下。

    (2)传递参数
    mailto支持以下参数:

    参数 含义
    to 收信人
    subject 主题
    cc 抄送
    bcc 暗抄送
    body 内容

    写入语句:

    <a  harset="utf-8" href="mailto:Angel?subject=conctact &cc=123@163.com&body=Hello world">send mail</a>

    将有如下结果:
    这里写图片描述

    3 操作部分分析

    1>练习中用html中input、ul、li 语句完成输入数据部分的表格建立

      <ul class="email">
                <li><input type="text" name="name" placeholder="Name"></li>
                <li><input type="text" name="email" placeholder="Email Address"></li>
                <li><input type="text" name="number" placeholder="Phone Number"></li>
                <li class="message"><textarea name="message"  placeholder="Message"></textarea> </li>
                <button class="btn btn-define">Submit</button>
                <a href="mailto" id="send"></a>
            </ul>

    2> css对背景进行调整,用JQuery获取上述输入的数据,如用户名,发送的邮箱地址,电话号码和发送内容,并完成发送给对方的操作,完整代码参照共享百度云连接:

    function sendEmail(){
        var name=$("[name='name']").val(),
            email=$("[name='email']").val(),
            number=$("[name='number']").val(),
            message=$("[name='message']").val(),
            body="My Name is: "+name+"%0a%0d"
                +"My Email Address is: "+email+"%0a%0d"
                +"My Phone Number is: "+number+"%0a%0d"
                +"Message:"+"%0a%0d"+message;
        $("#send").attr("href","mailto:mamengyi1121@163.com?body="+body);
        document.getElementById("send").click();
    }
    
    
    $(function(){
       //发送邮件
       $(".btn").click(sendEmail);
       //在表单输入时显示label
       $(".email").on("input propertychange",["input","textarea"],function(e){
            $(e.target.parentNode).toggleClass("in",!!$(e.target).val());
        })

    3> html + js +css 输出结果

    这里写图片描述

    完整代码:
    链接:https://pan.baidu.com/s/1BrYnZ9uv1XKqqB5v-lowmQ 密码:fh82

    展开全文
  • 怎么制作电子邮件 电子邮件制作方法...通过基于许可的电子邮件营销,不仅可以大大的降低营销和推广的成本,更能够直接地、准确地把信息传递到客户手。 今天我研究的问题是,如何从技术方面入手,制作一个优秀,且同

    怎么制作电子邮件 电子邮件制作方法?

    使用邮箱的朋友经常会收到一些非常美观绚丽的电子邮件,即使是广告邮件,吸入人的效果也往往会引发大家的好奇心去点击和访问。

    那么怎么制作出这么绚丽美观吸引人的电子邮件呢,下面就详细讲解一下。

    通过基于许可的电子邮件营销,不仅可以大大的降低营销和推广的成本,更能够直接地、准确地把信息传递到客户手中。

    今天我研究的问题是,如何从技术方面入手,制作一个优秀,且同时兼容用户视觉和邮件客户端的电子邮件。

    1.选择HTML还是文本(Plain Text)
    有人喜欢简单的文本,有人喜欢看丰富的HTML,我们怎么选择?
    对于营销型的邮件,建议使用HTML格式来制作(图);

    而对于确认/提醒/告知型邮件,建议使用文本或者简单的HTML来制作(图)。

    为什么针对这两种不同类型的邮件,采用不同的制作方式,这基于这些原因:
    营销型邮件的内容丰富性、多样性;确认型邮件的内容单一性,独特性;
    在营销型邮件中,客户会更注重内容的丰富性和视觉效果的美观性;
    在确认型邮件中,我们要让客户非常直接的看到确认信息,复杂的内容和视觉效果只会让客户忽略了邮件的主要内容——即确认信息;
    (下文将对营销型邮件的HTML制作做重点讨论)

    2.基于表格布局+CSS的HTML基本功
    功夫分两种,一种至阳至刚,另一种则至阴至柔,张三丰之所以登峰造极,因为其武功底子好,少林基本功扎实,才悟出这道即能至阴,又能至阳的太极拳。
    HTML的邮件也是如此,我们知道,当今邮件阅读客户端有很多种,传统的Outlook,Thunderbird,Lotus Notes,以及在线的Mac Mail,Gmail,Hotmail等,对邮件的解释都会不同,大多数在线邮件系统会屏蔽掉<head></head>标签之间的代码。

    要让所有用不同客户端的用户看到的邮件相同,这就要非常好的掌握好HTML的基本功。有人说DIV+CSS,有人说是SEO标签语义化,不可否认作为一个网页开发人员,能有这两种时下流行的HTML开发思想会很吃香,但是,这并不适用于邮件制作。我们的目的是让客户在不同邮件客户端下看到相同的信息内容,这就用到一个最原始的排版方式:表格布局+CSS。让我们看下时下邮件客户端对HTML和CSS的支持(图):

    *Hotmail能解析<body></body>间的<style>,但同样屏蔽<head></head>间的<style>

    3.做HTML邮件时,就要着重注意以下几点:

        把样式写入HTML标签内部,不要独立在某个外部文件中,也不要写在<style></style>间(图);

        给每一个有内容标签内部都加上CSS,即使重复和繁琐
        不要用CSS来对HTML元素标签定位;
        用绝对大小(像素)和相对大小(百分比)相结合的表格嵌套方式来定位。
        不要在邮件中插入任何的Javascript、Flash以及一些特特殊标签(如:marquee)
        绝大部分邮件客户端会屏蔽Flash和Javascript,以及一些特殊标签和属性;
        不要使用背景图片
        background-image属性在多数在线邮件客户端会被屏蔽,在Gmail中,你看不到任何的background图片;
        给每张图片都指定宽和高以及Alt属性值;
        图片的src属性一定要用绝对地址:
        正确:<img src=”http://blog.54575.com/logo.gif” width=”297″ height=”160″ alt=”好好活=有意义” />
        错误:<img src=”logo.gif” />
        重要的内容请不要用图片标示
        展览会的时间,地点,内容等信息是非常总要的,考虑到图片可能无法显示,这些内容不建议放在图片中显示;
        即使放在图片中,也请在邮件内容中以文字形式表示出来,并给把内容加入图片的Alt属性中。
        使用统一的utf-8编码;

    4.邮件的宽度,650px?还是600px?
    我们都知道,时下网页的宽度标准是950/960px,这取决于我们的显示器分辨率;
    而电子邮件经常是通过两种途径打开,软件客户端和在线客户端,这两种邮件客户端(图)。
    *Microsoft Outlook 2003

    *网易163邮箱

    由图可见,邮件往往并不是全屏显示的,
    如果延续使用网页的960/950px标准宽度,则势必会造成邮件一部分内容被遮盖住,这样,就产生了横向和纵向的两个滚动条,不方便于客户浏览;
    而太窄的宽度又会造成空间的浪费(图)

    那么,对于HTML邮件的宽度,到底定在多少才是最佳的呢?我们首先来参考下几家知名企业HTML邮件制作时所用的宽度:

    网易有道:600px

    QQ会员:650px

    Dell家庭与办公:650px

    Cisco Webex:600px

    可见,这些知名IT企业的营销邮件宽度就两种600px和650px,
    而据我4年EDM和Web设计经验,我更倾向于选择后者,即650px作为HTML营销邮件的标准宽度。
    650px的优势:
    当邮件的内容被分成2栏时候,650px可以分割成X+10+Y,其中X=左栏,Y=右栏,10为间隔空隙,X+Y=640,而640恰好能被20整除,640=2×2×2×2×2×2×10,
    当邮件的内容被分成3栏时候,650px可以分割成X+10+Y+10+Z,同样的,X+Y+Z=630,630恰好又能被30整除,630=3×3×7×10。
    为什么要这么分解,请查阅网页栅格化研究。
    这就是我选择650px而不选择600px的原因。
    当然,这仅仅是我个人定的标准,还未成为全球统一的标准,但我希望有一天这个宽度能被绝大多数的HTML邮件制作者和接受者所认可。

     

    从营销型邮件和确认型邮件开始,对HTML邮件的制作中,在技术方面需要注意的问题做了简单的叙述。
    在内容上,上一篇更适合技术人员看,而在本篇中,讨论的内容,略微偏向于市场和营销人员。

    1.统一的风格的页眉(页脚)


    两条深蓝色的荧幕边是如此简单,让我们立刻就能想到一个全球知名的品牌IBM。
    EDM是一项长期营销的过程,无论是大企业,还是小公司,在EDM营销过程中使用统一的页眉风格,能更好在客户的潜意识中树立起自己的品牌形象,加深客户对企业和品牌的印象,提高目标客户的浏览忠诚度。

    精彩案例:SAP

    2.页眉的内容
    我们都知道,把Logo放在页眉,但是除了Logos,我们还必须放些什么内容呢?
    这是一封漂亮的邮件,但不是一封合格的邮(网易梦幻西游)

    为什么说Ta不合格,因为在页眉缺少了几个至关重要的文字,我们看看大名鼎鼎的B2C大哥VANCL是怎么做的(图)

    “如果无法看到邮件完整内容,请点击此处查看”。这句话很简单,但却非常重要。
    由于各种原因,当用户无法正常浏览邮件正文时,这句在邮件顶部的带有链接的说明性文字,是企业给予客户的一种良好阅读体验,也将挽回一部分可能失去的客户;

    3.定期性营销邮件,把时间和刊号也加入页眉
    时光网(mtime.com)

    世界经理人(global sources)

    4.订阅、退订以及其他
    我们习惯性的把“订阅”,“退订”这些功能链接放在页脚(图)

    其实换一种方式,把“订阅”和“退订”放在邮件页眉又何尝不好呢?

    或者我们把订阅放在邮件的页眉 ,而把退订放在邮件的页脚。

    展开全文
  • SpringBoot实现发送电子邮件

    万次阅读 多人点赞 2019-04-20 23:41:23
    电子邮件与Java发送邮件的历史 电子邮件原理 电子邮件服务器 电子邮箱 邮件客户端 邮件传输协议 邮件格式 电子邮件发送和接收流程 电子使用场景 SpringBoot实现发送电子邮件 准备账号 构建项目并配置 实现服务端...

    SpringBoot知识体系

    目录


    从1969年10月世界上的第一封电子邮件发出,到2019年,已经过去将近半个世纪了。虽然即时通讯和视频会议,甚至全息投影都变得日益普及,但电子邮件依然有着广泛的使用场景和不可撼动的历史地位。

    SpringBoot拥有强大的生态链,几乎可以连接所有主流的开源库。

    下面我们就从电子邮件发送的历史再到原理,然后如何自己配置邮件服务器并发送邮件,一步步讲解。

    本文实现源码可以在这里找到: SpringBoot发送电子邮件源码

    电子邮件与Java发送邮件的历史

    1. 1969年10月,世界上的第一封电子邮件

    1969年10月世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短消息。第一条网上信息就是‘LO’,意思是‘你好!’。

    1. 1987年9月14日中国的第一封电子邮件

    在此之后,1987年9月14日中国的第一封电子邮件,这封邮件是由德国维尔纳·措恩与中国的王运丰在北京计算机应用技术研究所,发往德国一个大学的,邮件内容颇具深意,“Across the Great Wall we can reach every corner in the world.(越过长城,走向世界)”,这是中国通过北京与德国大学之间的网络连接,向全球科学网发出的第一封电子邮件。

    1. 30年代发展历程

    接下来中国的电子邮件进入了30年的发展期,虽然在1987年就有了电子邮件,但是,真正的邮件兴起,应该在90年代到2000年之间,因为在1987的时候中国网速特别慢,真正能接触到互联网的用户是非常少的,到了90年代中期,互联网浏览器的诞生,使得全民上网人数激增,电子邮件被广泛使用,此时,中国的部分学生在研究中使用到电子邮件,真正普及的时间是在2000年左右。

    1. Java发送邮件

    Java在发明之初,就开始支持发送邮件,通过java mail包方式去操作邮件发送的内容和协议,但是,这种发送方式稍微比较复杂,需要配置各种参数、协议、内容,之后产生了Spring框架。

    1. Spring发送邮件

    Spring在java mail的基础上进行了一些封装,使发送邮件的过程的复杂大大减少。

    1. SpringBoot发送邮件

    SpringBoot Mail在Spring Mail的基础上,再次进行一次封装,使得发送邮件的便利度上,更为简单。

    电子邮件原理

    电子邮件服务器

    用户要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。这些邮件服务器就类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。

    邮件服务器就好像是互联网世界的邮局。按照功能划分,邮件服务器可以划分为两种类型:

    1. SMTP邮件服务器:用户替用户发送邮件和接收外面发送给本地用户的邮件。
    2. POP3/IMAP邮件服务器:用户帮助用户读取SMTP邮件服务器接收进来的邮件。

    电子邮箱

    电子邮箱也称为E-mail地址,用户可以通过E-mail地址来标识自己发送的电子邮件,也可以通过这个地址接收别人发来的电子邮件。电子邮箱需要到邮件服务器进行申请,也就是说,电子邮箱其实就是用户在邮件服务器上申请的账户。邮件服务器会把接收到的邮件保存到为该账户所分配的邮箱空间中,用户通过用户名密码登录到邮件服务器查收该地址已经收到的邮件。一般来讲,邮件服务器为用户分配的邮箱空间是有限的。

    邮件客户端

    我们可以直接在网站上进行邮件收发,也可以使用常见的FoxMail、Outlook等邮件客户端软件接受邮件。邮件客户端软件通常集邮件撰写、发送和收发功能于一体,主要用于帮助用户将邮件发送给SMTP邮件服务器和从POP3/IMAP邮件服务器读取用户的电子邮件。

    邮件传输协议

    电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行邮件传递,那就必须要遵守一定的规则,这个规则就是邮件传输协议。下面我们分别简单介绍几种协议:

    1. SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。
    2. POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信规则。
    3. IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则。

    邮件格式

    要想各种邮件处理程序能识别我们所写的电子邮件,能从我们所书写的电子邮件中分析和提取出发件人、收件人、邮件主题和邮件内容以及附件等信息,那么我们所写的电子邮件必须要遵循一定的格式要求,而这种邮件内容的基本格式和具体细节分别是由 RFC822 文档和 MIME 协议定义的。

    1. RFC822 文档中定义的文件格式包括两个部分:邮件头和邮件体。
    2. MIME协议(Multipurpose Internet Mail Extensions )用于定义复杂邮件体的格式,它可以表达多段平行的文本内容和非文本的邮件内容,例如,在邮件体中内嵌的图像数据和邮件附件等。另外,MIME协议的数据格式也可以避免邮件内容在传输过程中发生信息丢失。MIME协议不是对RFC822邮件格式的升级和替代,而是基于RFC822邮件格式的扩展应用。一言以蔽之,RFC822定义了邮件内容的格式和邮件头字段的详细细节,MIME协议则是定义了如何在邮件体部分表达出的丰富多样的数据内容。

    电子邮件发送和接收流程

    电子邮件发送和接收流程

    图示的六个步骤分别进行如下的说明:

    ①用户A的电子邮箱为:xx@qq.com,通过邮件客户端软件写好一封邮件,交到QQ的邮件服务器,这一步使用的协议是SMTP,对应图示的①;

    ②QQ邮箱会根据用户A发送的邮件进行解析,也就是根据收件地址判断是否是自己管辖的账户,如果收件地址也是QQ邮箱,那么会直接存放到自己的存储空间。这里我们假设收件地址不是QQ邮箱,而是163邮箱,那么QQ邮箱就会将邮件转发到163邮箱服务器,转发使用的协议也是SMTP,对应图示的②;

    ③163邮箱服务器接收到QQ邮箱转发过来的邮件,也会判断收件地址是否是自己,发现是自己的账户,那么就会将QQ邮箱转发过来的邮件存放到自己的内部存储空间,对应图示的③;

    ④用户A将邮件发送了之后,就会通知用户B去指定的邮箱收取邮件。用户B会通过邮件客户端软件先向163邮箱服务器请求,要求收取自己的邮件,对应图示的④;

    ⑤163邮箱服务器收到用户B的请求后,会从自己的存储空间中取出B未收取的邮件,对应图示⑤;

    ⑥163邮箱服务器取出用户B未收取的邮件后,将邮件发给用户B,对应图示的⑥;最后三步用户B收取邮件的过程,使用的协议是POP3;

    电子邮件的使用场景

    在系统中电子邮件的使用场景:

    1. 注册验证

    2. 营销推送

    3. 触发机制

    4. 监控报警

    电子邮件是业务和安全的最后一道防线 —— 当系统无法自动处理的时候,通过邮件提醒相关支持人员。

    SpringBoot实现发送电子邮件

    准备账号

    注册发件邮箱并设置客户端授权码,这里以163免费邮箱为例:

    163邮箱协议设置-1

    163邮箱协议设置-2

    构建项目并配置

    搭建完项目以后,进行下面的两步配置。

    application.properties配置参数:

    # 邮箱配置
    spring.mail.host=smtp.163.com
    # 你的163邮箱
    spring.mail.username=ispringboot@163.com
    # 注意这里不是邮箱密码,而是SMTP授权密码
    spring.mail.password=isb001
    spring.mail.port=25
    spring.mail.protocol=smtp
    spring.mail.default-encoding=UTF-8
    

    pom.xml依赖spring-boot-starter-mail模块:

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
    </dependency>
    

    实现服务端代码

    MailService.java:

    package org.ijiangtao.tech.spring.boot.mail.imail.service;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.core.io.FileSystemResource;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;
    import org.springframework.stereotype.Service;
    
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;
    import java.io.File;
    
    @Service
    public class MailService {
    
        private final Logger logger = LoggerFactory.getLogger(this.getClass());
    
        @Value("${spring.mail.username}")
        private String from;
    
        @Autowired
        private JavaMailSender mailSender;
    
        /**
         * 简单文本邮件
         * @param to 接收者邮件
         * @param subject 邮件主题
         * @param contnet 邮件内容
         */
        public void sendSimpleMail(String to, String subject, String contnet){
    
            SimpleMailMessage message = new SimpleMailMessage();
            message.setTo(to);
            message.setSubject(subject);
            message.setText(contnet);
            message.setFrom(from);
    
            mailSender.send(message);
        }
    
        /**
         * HTML 文本邮件
         * @param to 接收者邮件
         * @param subject 邮件主题
         * @param contnet HTML内容
         * @throws MessagingException
         */
        public void sendHtmlMail(String to, String subject, String contnet) throws MessagingException {
            MimeMessage message = mailSender.createMimeMessage();
    
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(contnet, true);
            helper.setFrom(from);
    
            mailSender.send(message);
        }
    
        /**
         * 附件邮件
         * @param to 接收者邮件
         * @param subject 邮件主题
         * @param contnet HTML内容
         * @param filePath 附件路径
         * @throws MessagingException
         */
        public void sendAttachmentsMail(String to, String subject, String contnet,
                                        String filePath) throws MessagingException {
            MimeMessage message = mailSender.createMimeMessage();
    
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(contnet, true);
            helper.setFrom(from);
    
            FileSystemResource file = new FileSystemResource(new File(filePath));
            String fileName = file.getFilename();
            helper.addAttachment(fileName, file);
    
            mailSender.send(message);
        }
    
        /**
         * 图片邮件
         * @param to 接收者邮件
         * @param subject 邮件主题
         * @param contnet HTML内容
         * @param rscPath 图片路径
         * @param rscId 图片ID
         * @throws MessagingException
         */
        public void sendInlinkResourceMail(String to, String subject, String contnet,
                                           String rscPath, String rscId) {
            logger.info("发送静态邮件开始: {},{},{},{},{}", to, subject, contnet, rscPath, rscId);
    
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = null;
    
            try {
    
                helper = new MimeMessageHelper(message, true);
                helper.setTo(to);
                helper.setSubject(subject);
                helper.setText(contnet, true);
                helper.setFrom(from);
    
                FileSystemResource res = new FileSystemResource(new File(rscPath));
                helper.addInline(rscId, res);
                mailSender.send(message);
                logger.info("发送静态邮件成功!");
    
            } catch (MessagingException e) {
                logger.info("发送静态邮件失败: ", e);
            }
    
        }
    
    }
    

    新建邮件模板

    我们使用thymeleaf作为模板引擎。

    emailTeplate.html:

    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
        <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
        <title>注册-测试邮件模板</title>
    </head>
    <body>
        你好,感谢你的注册,这是一封验证邮件,请点击下面的连接完成注册,感谢您的支持。
        <a href="#" th:href="@{https://github.com/{id}(id=${id})}">激活账户</a>
    </body>
    </html>
    

    测试发送邮件

    测试发送邮件,使用单元测试MailServiceTest.java:

    package org.ijiangtao.tech.spring.boot.mail.imail.service;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import org.thymeleaf.TemplateEngine;
    import org.thymeleaf.context.Context;
    
    import javax.annotation.Resource;
    import javax.mail.MessagingException;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class MailServiceTest {
    
        @Autowired
        private MailService mailService;
    
        @Resource
        private TemplateEngine templateEngine;
    
        @Test
        public void sendSimpleMail() {
            mailService.sendSimpleMail("ispringboot@163.com","测试spring boot imail-主题","测试spring boot imail - 内容");
        }
    
        @Test
        public void sendHtmlMail() throws MessagingException {
    
            String content = "<html>\n" +
                    "<body>\n" +
                    "<h3>hello world</h3>\n" +
                    "<h1>html</h1>\n" +
                    "<body>\n" +
                    "</html>\n";
    
            mailService.sendHtmlMail("ispringboot@163.com","这是一封HTML邮件",content);
        }
    
        @Test
        public void sendAttachmentsMail() throws MessagingException {
            String filePath = "/ijiangtao/软件开发前景.docx";
            String content = "<html>\n" +
                    "<body>\n" +
                    "<h3>hello world</h3>\n" +
                    "<h1>html</h1>\n" +
                    "<h1>附件传输</h1>\n" +
                    "<body>\n" +
                    "</html>\n";
            mailService.sendAttachmentsMail("ispringboot@163.com","这是一封HTML邮件",content, filePath);
        }
    
        @Test
        public void sendInlinkResourceMail() throws MessagingException {
            //TODO 改为本地图片目录
            String imgPath = "/ijiangtao/img/blob/dd9899b4cf95cbf074ddc4607007046c022564cb/blog/animal/dog/dog-at-work-with-computer-2.jpg?raw=true";
            String rscId = "admxj001";
            String content = "<html>" +
                    "<body>" +
                    "<h3>hello world</h3>" +
                    "<h1>html</h1>" +
                    "<h1>图片邮件</h1>" +
                    "<img src='cid:"+rscId+"'></img>" +
                    "<body>" +
                    "</html>";
    
            mailService.sendInlinkResourceMail("ispringboot@163.com","这是一封图片邮件",content, imgPath, rscId);
        }
    
        @Test
        public void testTemplateMailTest() throws MessagingException {
            Context context = new Context();
            context.setVariable("id","ispringboot");
    
            String emailContent = templateEngine.process("emailTeplate", context);
            mailService.sendHtmlMail("ispringboot@163.com","这是一封HTML模板邮件",emailContent);
    
        }
    }
    
    

    测试结果,收到了电子邮件:

    总结

    SpringBoot-Email

    在生产环境,一般邮件服务会单独部署,并通过HTTP或MQ等方式暴露出来。

    邮件部署架构

    相关链接

    展开全文
  • 当前,电子邮件工作的使用非常频繁,电子邮件传递信息便捷,成本低廉。然而因为邮件的便捷,似乎有时候没有提高效率,反而增加了干扰而降低效率。 使用注意事项 沟通重要事件时,最好使用邮件,如果你光打...

        当前,电子邮件在工作中的使用非常频繁,电子邮件传递信息便捷,成本低廉。然而因为邮件的便捷,似乎有时候没有提高效率,反而增加了干扰而降低效率。


    使用注意事项


    沟通重要事件时,最好使用邮件,如果你光打电话,对方可以不认账

    如有需要,请用BCC(暗抄)

    根据邮件类型(如急阅件、待处理件、须知通知、一般通知、报表、报告/总结、新闻/通报、私人邮件等等)或按具体项目设置子文件夹。
     
    将收件箱中的邮件过滤,删除不必要的邮件,
     
    如发出的邮件需要追踪结果或确认对方是否收到,需要设置回执,如对方未能及时查看,需电话说明。
     
    重要邮件及时进行存档

    不要使用自动回复功能

    用客户端收发信(如 outlook),在服务器端保留邮件

    小心附件功能的使用,附件内容不长时,请直接撰写于信件中。若一定要使用附件功能,也须注明附件的撰写软件,例如:“附件为word2003格式","请见附件"

     

     

    发现工作中使用邮件的不好习惯有:
    1、盲目抄送


    1)抄送给无关的人 尤其是公司的办公软件非常方便,输入公司名称或部门名称后就可以将信息发给整个公司或整个部门的人。所以有的人发邮件比较懒,本来只需要这个部门1到2个员工知晓或办理的事情,就直接发给整个部门了,搞得无关的人员也接受的这个信息。


    2)抄送给领导  有人做工作仿佛怕 领导不知道,一个很小的事情也抄送给领导,弄得1个部门主管1天手100来封邮件,1个总经理300来封邮件,这样容易让对主管重要的邮件混在众多邮件 中,也增加了主管筛选信息的时间和难度。有时候这种抄送还容易引起矛盾。一个部门主管跟我反映说另一个新上任主管处理问题的方式有点问题,有一件事情新任 主管根本没有跟他沟通过,这个新任主管凭自己臆断将处理要求发给他并抄送给老板,搞得他非常被动,将事情说明后有对这个新任主管不利。

    2、语言过于简单或过于啰嗦
    因为发送邮件 和回复邮件只需按一个发送键就发出去了,很多人写邮件没有仔细考虑,在还没有想清楚或没有表述清楚的情况下就发送了。有的邮件过于简单,没有称呼,没有礼 貌,直接说要求做什么事情,让接收的感觉不是很舒服。有的邮件则过于啰嗦,条理不清,发邮件的人想到哪里写到哪里,写完后没有检查就发出去了,让接收邮件 的人读起来很费力。


    3、与工作无关的邮件满天飞


    1)相同的节日祝福邮件  自从有了邮件,发现到节日前会收到很多关于节日祝福的邮件,本来收到祝福、发送祝福是一件好事,但发现一个节日收到几十上百封节日祝福的邮件反而没有新意,并且很多都是发送附件,收到的内容几乎一样,而且附件十有八九是一样的。其实,很多人只是将别人发给他的转发,而且是批量转发。


    2)无聊的邮件多  经常收到与工作关系的休闲邮件,这些邮件的内容包括,好一点的是养生之道、修身之策,无聊的是搞笑图片、史上最……的故事,最麻烦的恐怕是要求必须将邮件转发给十位其他人的邮件。


    现在接收的邮件中真正重要的需要处理的邮件还是不多的,时间容易浪费在无关的邮件上。一方面提高处理信息的技巧和速度,另一方面也要从自身做起,不要发与工作无关的邮件,不要转发不良信 息,不要将邮件抄送给无关的人员。在书写邮件的时候主要使用能反映关键问题的标题、注意礼貌、注意条理和简洁。另外要注意,很多问题邮件并不能解决,邮件 只是传递信息的一种方式,很多时候电话或当面沟通或许比邮件更有效。


    守则一:不要随便“回复所有人”
      阿康 外企职员
      千万不要在回复邮件时随便点击“回复所有人”———这是我从我那倒霉的客户那里学来的“血的教训”。
      那次接手一个挑剔的客户,耗了很久,价格一直谈不拢,差不多有两周时间,我每天上班头一件事,就是和对方互通邮件、打探进展。那段日子,老板 盯、对方拖,搞得我每天灰头土脸、心力憔悴。直到有一天,在我们通过20封邮件时,我的邮箱里忽然出现了一封“机密”信函,上面有这家公司讨论我们公司的 报价的详细经过,包括各级老板的回复意见、他们预期争取的价格,还有准备对付我们的具体计划。
      这下好了,掌握了对方的底线,后面的事情做得极其顺利。那个项目谈完,老板对我刮目相看。
      我心里有鬼。冷静之后仔细研究了这封邮件的来龙去脉,终于发现:发给我这封邮件的人一定是在某次疏忽之下按了“回复所有人”,才把信不小心传到了我手里。
      也真怪不得他,之前我们往来的邮件实在过多,而且所有的邮件题目都是一长串“RE:RE:RE……”,看起来极其相似。我的邮件发给他、他的老 板后,他老板回复给了他,还有他们公司的财务、我以及更多人。之后他们内部还讨论了很多问题,他就沿用那些几经回复的信件,继续发给我询问。这个倒霉蛋初 期一直把这项工作做得有条不紊,哪些人在“收件人”一栏里,哪些人在“抄送”栏里,从不混淆,直到有一次,在这么多个类似标题的邮件里,他终于“迷失” 了,一点“全部回复”……


    守则二:沟通重要事件时,最好使用邮件,如果你光打电话,对方可以耍赖
      大卫 物流管理
      在我还是新人时,吃过一次这样的亏。那是一个做事非常拖拉、工作极为马虎的客户,每次交接,都需要我无数次催促、反复提醒。
      有一次,由于缺少一些材料,他们公司委托我们发的一批货无法申报。我第一时间就给对方打电话交代了这个情况。我们这行,时间就是金钱。我反复跟他说,如果在几点前备不齐这些材料导致耽搁进程,那就是他们的责任了。
      他满口答应,说两个小时后就能给我回音。没想到,两小时过去了、一个上午过去了,还是没发材料来。下午我又催了一次,他还是说“马上”、“马上”。
      最后的结果可想而知。对方老板怒了,一个电话打到我老板那儿,投诉我工作不力。
      “我确实打过电话了呀。”我向我们老板诉苦。
      “你为什么不发邮件呢?”老板虽然相信我,可是对方一口咬定我没通知,口说无凭,没有邮件作证据,只能由我们来赔偿损失。
      老板亲授心得:“下回遇到这样的人,非但给他写邮件,还应该明抄一份给他的上司,这样,他就不敢怠慢了。”
      姜还是老的辣,办公室“游戏准则”之一就是:遇见重要的事,先发邮件,把责任扔给对方再说。


    守则三:如有需要,请用BCC(暗抄)
      金子 银行客服
      前不久,办公室里议论纷纷,说领导最近准备给上上下下所有人配备商务手机。一时间人人纳闷———一向精打细算的领导怎么一下子出手大方起来了?
      不久,手机如期而至,公司里还搞了统一的培训,教大家如何用手机收发邮件、处理公文。又过了一阵子,下达最新指令:所有关键部门的员工,24小 时开机,随时处理邮件!消息一出,各路流言飞转,出现了多种关于此举动机的猜测:一说公司里各部门严重推卸责任,出现事故,互相推诿,A怪B没有告知,B 说自己已经书面邮件通知,A说没有收到邮件;另一种说法是,前不久公司内部出现“打小报告邮件事件”,有人趁他人不备,在对方电脑上使用邮件系统,发送出 一份举报信,结果,该信还落入了被举报人手中,他找到发信人论理,该人说一定是有人为了陷害自己,盗用信箱发信;还有传言,说是两个部门的人结怨,跑去领 导那里论理,要求每次发完邮件,必须电话通知或者消息确认,不然存在“陷害”的可能性……
      也不知是哪个“军师”的主意,最后让领导下决心给每个人都配置了这款可发邮件的商务手机,现在,所有人都胆战心惊地24小时开机,并且一看到有“CC”(抄送)给自己上司的邮件就格外认真,如果看到了显示BCC(暗抄)的邮件,那么,赶紧起床吧,这觉是再也睡不好了。
      

    守则四:如果你是老板,请设置“敏感词”
      小言 外企行政
      前不久公司出了一件大事:一个不满工作的员工在跳槽前夜,调出所有同事和客户的电邮,群发了一封“控诉信”。
      除了对公司内部关键人物的投诉之外,还列举了公司内部存在的种种管理漏洞。邮件最后说:“这样缺乏信誉的公司,你们还敢和他继续有生意方面的合作么?”
      邮件是周一早上群发的,那天我正好在外面办事,下午回到办公室,据说已经被集体删除了。不过,好多人都悄悄备份存在自己的电脑里,我就是那样看到了这封邮件。有好一阵子,它被当作上班生活的调味剂。
      据说,高层大骇,虽然最后找到那名员工并追究了法律责任,可对于我们这样的大公司来说,毕竟很是“坍台”。
      于是,消息灵通人士最近通知我们,老板出资百万购了一套新系统,据说,现在任何从公司发出的邮件,一旦出现“状况”,系统会自动警报,并阻止发送。
      为这事,我们八卦了半天,都在推测系统会设置多少敏感词汇来自动阻止邮件。经讨论,大家达成共识:少写中文邮件———我们工作往来的邮件,大部分是用英语写的,而那封控诉信用的是中文———这种信,还是用母语写比较顺畅。


    守则五:不要随意转发
      Ken 项目经理
      通常我们汇报工作时,贪图方便,会直接把邮件转发给老板。但你的老板如果足够细心和专业,他会批评你。
      我对我们老板肃然起敬,也是因为一封邮件。那次,他把我叫到办公室:“Ken,你是不是偷懒,直接把对方的公文发给我了?”
      我的确转发了邮件,因为一样是总结,既然对方总结好了,我就顺手按了转发,可是,他怎么会知道?
      “你过来,转发的字色是灰色,并且前面会出现‘>’的符号。”
      我满脸通红。到底是老板!

    守则六:绝对不要用通用密码

            小淘 公司职员

    一天早晨刚到公司,就收到了一个群发邮件。以为是垃圾邮件,可以一看标题是我们公司的工资表。好奇的打开一看,公司全部人员的工资信息都在里面,而且是真的信息。自己的工资数和卡号就没错。事后高层大怒,又要报警,又找技术开会调查。报没报警不清楚,到是技术部门查了个把月。最后的结论是公司内部人员,知道员工邮箱密码的设置规则是个人分机号。清查出了可以接触到工资表的人有一大半都在用这个通用密码,包括老板在内。这事也就不了了之了。到是后续有几个人因为不满工资差异而离职了。



      TIPS:
      ■邮件最能撒谎。面谈时,有可能通过表情泄漏天机;打电话,难免语塞。而邮件永远不会。
      ■邮件是最职业的公务交办手段,它可以丝毫不带感情色彩。
      ■公务邮件的最后,一般要设置“免责声明”,大体需要明确的意思是:“如果这封信不是给你的,希望收到后退还给我,以免引起之后的纠纷。”
      ■最后填写收件人,因为一个误操作,有可能送出一份空信,令对方造成你工作粗糙的印象。
      ■愤怒时不要用E-mail.E-mail很难传送幽默,但很容易传达愤怒。
      ■使用有意义的标题,让收信人一下就能明白里面是什么,同时也区别于垃圾邮件。
      ■简短。如果有很多话,可以列成要点。
      ■休假时应设置自动回复,这是礼貌和方便的问题。但不要给私人邮件设这种东西,免得有心人知道你家里没人。
      ■使用表情。如果你的情绪可能被误解,就加上笑脸。

     

    展开全文
  • 电子邮件系统的介绍

    千次阅读 2017-04-03 16:27:38
    1、前言电子邮件系统的组成: 用户接口 用户接口是本地运行的程序,又称用户代理(UA),主要是撰写、显示、处理邮件。UA的任务是创建和显示报文,并且UA和本地的MAT之间传递报文 邮件传输程序 这个部分又称报文...
  • 电子合同中电子邮件应用的法律问题研究 高云 随着Internet的普及和电子...电子合同法律研究领域,作为网络上最常见的信息交换形式—电子邮件的法律问题,无疑是最具实用性的话题,因为电子邮件对于电子合同的成立
  • 电子邮件的工作原理

    2016-03-07 11:21:03
    电子邮件设计实现以及电子邮件的工作原理
  • Email电子邮件

    万次阅读 2009-07-06 10:15:00
    【释义】 电子邮件(electronic mail,简称E-mail,标志:@,也被大家昵称为“伊妹儿”)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。是Internet应用最广的服务:通过网络的电子邮件系统,...
  • outlook收邮件延迟When you click Send on an email, it is typically sent immediately. Butwhat if you want to send it at a later time? Outlook allows you delay the sending of a single message or all ...
  • 全面理解电子邮件

    万次阅读 2018-10-16 21:03:55
    用户代理(User Agent)就是用户与电子邮件系统的接口,大多数情况下它就是运行用户PC机的一个程序。一般具有撰写、显示、处理、通信等功能。 因特网上有许多邮件服务器可供用户选择,邮件服务器24小时不间断...
  • 详细解释电子邮件中POP3协议及最小化实现 1. 什么是POP3 POP3的英文全称Post OfficeProtocol Version 3,POP3协议本质上是一种消息传递协议 主要用来支持POP3客户端和POP3邮件服务器端通信,基于TCP协议之上的...
  • 电子邮件安全的主要威胁有哪些?

    千次阅读 2019-05-28 11:32:54
    如果把电子邮件、电子邮箱、电子邮件服务器和用户看成一个电子邮件相关联的系统,从攻击窃密的角度,电子邮件相关的安全保密威胁可概括为四类:电子邮件被截获、电子邮箱被非法登录控制、电子邮件系统被攻击控制、...
  • [协议] RFC822 电子邮件的标准格式

    千次阅读 2013-06-23 18:34:46
    除了由一个Internet用户传递给另一个用户的信息之外,电子邮件中还必须包含附加的服务信息。SMTP服务器利用这些信息传递邮件,而客户端的邮件接收软件则利用这些信息来对邮件进行分类。 每封邮件都有两个部分:信...
  • 电子邮件Mailto

    千次阅读 2012-06-19 20:13:12
    电子邮件能让访问者方便地向网站提供反馈或联系信息。它可以自动填写抄送和密件抄送,甚至能自动填充主题行。下面介绍如何定制 Mailto功能。  实现 Mailto的基本html代码:  点击这里发邮件给站长!   当访问...
  • 无法使用此电子邮件地址。请选择其他电子邮件地址 2、原因 1)注册了Apple ID账号显示电子邮件已用于Apple ID,就是表示注册的电子邮件已经创建过Apple ID账号了,不需要重新再注册。 2)这种情况说明此邮箱已经...
  • 一、与其他通信方式相比...4.可以将文字、图像、语音等多种类型的信息集成一个邮件传送。 二、电子邮件系统的基本知识 1.工作模式:客户机/服务器模式。 2.TCP/IP互联网上电子邮件的传输过程 (1)邮件服务器之
  • 如何防止企业电子邮件外泄

    千次阅读 2019-05-14 09:57:08
    随着信息时代的发展,电子邮件泄露事件也越来越多,甚至成了让企业及个人头疼的问题,有调查显示,有近70%以上的企业担忧电子邮件沦为泄密管道,致使商业机密资料外泄他人之手。更有半数的员工承认曾工作时不慎将...
  • VBScript 发送电子邮件

    千次阅读 2011-10-17 23:47:05
    实现用VBScript发送电子邮件很简单。下边用到的CDO是微软协作数据对象库,用于实现到自定义应用程序的消息传送和协作功能。 我们利用微软CDO对象用以下代码实现使用SMTP协议发送电子邮件: Set objEmail = ...
  • python学习通过smtp发送电子邮件

    千次阅读 2017-07-07 14:50:19
    发送电子邮件和短信 SMTP:简单的邮件传输协议,是用于发送电子邮件的协议,SMTP规定电子邮件应该如何格式化,加密。邮件服务器之间传递, 以及你点击发送后,计算机需要处理的细节; IMPA:负责取回发送给你...
  • 电子邮件技术基础

    千次阅读 2017-02-24 13:53:10
    1.1.1 电子邮件服务器  功能: 1.接收用户投递的邮件 2.将用户投递进来的邮件转发给目标邮件服务器 3.接收其他邮件服务器发来的邮件,并把邮件存储到其管理的用户邮箱 4.为前来读取邮件的用户提供读取服务 ...
  • 什么邮件反弹?

    千次阅读 2017-06-19 09:00:05
    反弹消息是一种方法,让您(电子邮件发件人)知道发生了什么事情扰乱了您的电子邮件传递。这种提供错误的方法是所有电子邮件服务器上的标准配置,但消息使用的实际文本可能会有所不同。 反弹信息的重要性 提供...
  • 电子邮件用于网上的信心传递和交流,它是最重要的Internet服务之一。据统计Internet有30%的业务是电子邮件有关的。同时我们也不可否认它我们的日常生活、工作办公方面扮演着很重要的角色。譬如:许多办公自动化...
  • 转载请注明出处:https://blog.csdn.net/l1028386804/article/details/79972801一、生成电子邮件示例有两个创建电子邮件消息的示例,即 make_mpa_msg()和 make_img_msg(),两者都创建了一条带有附件的电子邮件消息...
  • OSI参考模型下电子邮件传输过程

    千次阅读 2015-04-18 15:09:24
    OSI参考模型下的电子邮件传输过程  电子邮件的工作过程遵循客户---服务器模式。每份电子邮件的发送都要涉及到发送方和接收方,发送发构成客户端,而接收方构成服务器。其主要用到的协议由SMTP和POP3协议。  ...
  • javaMail学习二 电子邮件的工作原理

    千次阅读 2015-12-29 22:44:46
    1.1下面以sina和sohu这两个电子邮件为例子来讲解电子邮件的传输过程和工作原理
  • 电子邮件工作原理

    千次阅读 2005-10-02 17:35:00
    Internet上将一段文本信息从一台计算机传送到另一台计算机上,可通过两种协议来完成,即SMTP(Simple Mail Transfer ...Internet上能够接收电子邮件的服务器都有SMTP。电子邮件在发送前,发件方的SMTP服务器与接收方
  • 沟通管理作为项目管理核心知识领域之一,项目管理和团队协作的作用毋庸置疑。沟通管理涉及的范围很广,本文从沟通的重要性和模型出发,主要从信息传递(维度、模式、媒介、干系人、场景分析)和信息维护(工具...
  • 用Telnet快速收发电子邮件

    千次阅读 2007-07-28 07:38:00
    提起电子邮件的发送与收取,我们不能不谈起与电子邮件传递息息相关的两大网络协议,即POP3协议和SMTP协议,这两个协议可是电子邮件收取与发送的核心所在. 简单介绍telnet工具后,我们来了解如何用Telnet工具收取...
  • [QTP]vbscript通过CDO组件发送电子邮件

    千次阅读 2012-12-30 22:51:15
    实现用VBScript发送电子邮件很简单。下边用到的CDO是微软协作数据对象库,用于实现到自定义应用程序的消息传送和协作功能。 我们利用微软CDO对象用以下代码实现使用SMTP协议发送电子邮件: Set objEmail = ...
  • 关于电子邮件的知识

    千次阅读 2007-12-06 22:53:00
    关于电子邮件的知识POP3和SMTP是指什么?... 其实一般每个提供电子邮件服务的网站都有自己的SMTP和POP服务器地址,你登录你的电子邮件网站时仔细找找肯定能发现它们,如果找不到还可以查看一下网站的“帮助”, 如:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,820
精华内容 30,328
关键字:

在电子邮件中可以传递的信息是什么