精华内容
下载资源
问答
  • 创建mail连接方法中正确的是
    千次阅读
    2020-08-08 12:31:31

    一、Java Mail概述:

           Java Mail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为J2EE的一部分。

           厂商所提供的Java Mail服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:

    l         SMTP:简单邮件传输协议,用于发送电子邮件的传输协议;

    l         POP3:用于接收电子邮件的标准协议;

    l         IMAP:互联网消息协议,是POP3的替代协议。

    这三种协议都有对应SSL加密传输的协议,分别是SMTPSPOP3SIMAPS

    Java Mail服务提供程序之外,Java Mail还需要JAF(JavaBeans Activation Framework)来处理不是纯文本的邮件内容,这包括MIME(多用途互联网邮件扩展)、URL页面和文件附件等内容。下图描述了Java Mail的体系结构。

     

    mail. jar:此JAR文件包含 Java Mail APISun提供的SMTPIMAPPOP3服务提供程序;

    activation. jar:此JAR文件包含JAF APISun的实现。

     

    二、对相关协议的回顾:

           1、介绍

           在研究  Java Mail API 的细则之前,让我们回顾用于 API 的协议。基本上,您会逐渐熟悉并喜爱的协议有四个:

     

        * SMTP

        * POP

        * IMAP

        * MIME

     

    您还将碰到 NNTP 和其它协议。理解所有协议的基本知识将有助于您理解如何使用  Java Mail API。虽然不了解这些协议您照样可以用这个 API,却不能够克服那些基础协议的局限性。如果我们精选的协议不能支持某种性能, Java Mail API 决不能魔术般的将这种性能添加上去。(您很快就会看到,在处理 POP 时这将成为一个难题。)

          

           2SMTP

           简单邮件传输协议(Simple Mail Transfer ProtocolSMTP)由 RFC 821 定义。它定义了发送电子邮件的机制。在  Java Mail API 环境中,您基于  Java Mail的程序将和您的公司或因特网服务供应商的(Internet Service Provider'sISP'sSMTP 服务器通信。SMTP 服务器会中转消息给接收方 SMTP 服务器以便最终让用户经由 POP  IMAP 获得。这不是要求 SMTP 服务器成为开放的中继,尽管 SMTP 服务器支持身份验证,不过还是得确保它的配置正确。像配置服务器来中继消息或添加删除邮件账号这类任务的实现, Java Mail API 中并不支持。

     

           3POP

           POP 代表邮局协议(Post Office Protocol)。目前用的是版本 3,也称 POP3RFC 1939 定义了这个协议。POP 是一种机制,因特网上大多数人用它得到邮件。它规定每个用户一个邮箱的支持。这就是它所能做的,而这也造成了许多混淆。使用 POP 时,用户熟悉的许多性能并不是由 POP 协议支持的,如查看有几封新邮件消息这一性能。这些性能内建于如 Eudora  Microsoft Outlook 之类的程序中,它们能记住一些事,诸如最近一次收到的邮件,还能计算出有多少是新的。所以当使用  Java Mail API 时,如果您想要这类信息,您就必须自己算。

     

           4IMAP

           IMAP 是更高级的用于接收消息的协议。在 RFC 2060 中被定义,IMAP 代表因特网消息访问协议(Internet Message Access Protocol),目前用的是版本 4,也称 IMAP4。在用到 IMAP 时,邮件服务器必需支持这个协议。不能仅仅把使用 POP 的程序用于 IMAP,并指望它支持 IMAP 所有性能。假设邮件服务器支持 IMAP,基于  Java Mail的程序可以利用这种情况  用户在服务器上有多个文件夹(folder),并且这些文件夹可以被多个用户共享。

           因为有这一更高级的性能,您也许会认为所有用户都会使用 IMAP。事实并不是这样。要求服务器接收新消息,在用户请求时发送到用户手中,还要在每个用户的多个文件夹中维护消息。这样虽然能将消息集中备份,但随着用户长期的邮件夹越来越大,到磁盘空间耗尽时,每个用户都会受到损失。使用 POP,就能卸载邮件服务器上保存的消息了。

          

           5MIME

           MIME 代表多用途因特网邮件扩展标准(Multipurpose Internet Mail Extensions)。它不是邮件传输协议。但对传输内容的消息、附件及其它的内容定义了格式。这里有很多不同的有效文档:RFC 822RFC 2045RFC 2046  RFC 2047。作为一个  Java Mail API 的用户,您通常不必对这些格式操心。无论如何,一定存在这些格式而且程序会用到它。

     

           6NNTP及其他

           因为  Java Mail API 将供应商和所有其它的东西分开了,您就能轻松添加额外的协议支持。Sun 保留了一张第三方供应商列表,他们利用了 Sun 不提供超出(out-of-the-box)支持范围的协议。您会找到 NNTP(网络新闻传输协议)[新闻组]S/MIME(安全多用途因特网邮件扩展)及其它支持。

     

     

          

          

    三、Java Mail的关键对象:

           Java Mail对收发邮件进行了高级的抽象,形成了一些关键的的接口和类,它们构成了程序的基础,下面我们分别来了解一下这些最常见的对象。

    Properties:属性对象

           由于Java Mail需要和邮件服务器进行通信,这就要求程序提供许多诸如服务器地址、端口、用户名、密码等信息,Java Mail通过Properties对象封装这些属性西信息。如下面的代码封装了两个属性信息:

        Properties props = new Properties();
    
        props.put("mail.smtp.host", "smtp.sina.com.cn");
    
        props.put("mail.smtp.auth", "true");
    
       

        针对不同的的邮件协议,Java Mail规定了服务提供者必须支持一系列属性,下表是针对SMTP协议的一些常见属性(属性值都以String类型进行设置,属性类型栏仅表示属性是如何被解析的):

    属性名

    属性类型

    说明

    mail.stmp.host

    String

    SMTP服务器地址,如smtp.sina.com.cn

    mail.stmp.port

    int

    SMTP服务器端口号,默认为25

    mail.stmp.auth

    boolean

    SMTP服务器是否需要用户认证,默认为false

    mail.stmp.user

    String

    SMTP默认的登陆用户名

    mail.stmp.from

    String

    默认的邮件发送源地址

    mail.stmp.socketFactory.class

    String

    socket工厂类类名,通过设置该属性可以覆盖提供者默认的实现,必须实现javax.net.SocketFactory接口

    mail.stmp.socketFactory.port

    int

    指定socket工厂类所用的端口号,如果没有规定,则使用默认的端口号

    mail.smtp.socketFactory.fallback

    boolean

    设置为true时,当使用指定的socket类创建socket失败后,将使用java.net.Socket创建socket,默认为true

    mail.stmp.timeout

    int

    I/O连接超时时间,单位为毫秒,默认为永不超时

           其他几个协议也有类似的一系列属性,如POP3mail.pop3.hostmail.pop3.port以及IMAPmail.imap.hostmail.imap.port等。更详细的信息请查看com.sun.mail.smtpcom.sun.mail.pop3com.sun.mail.imap这三个包的Javadochttp://java.sun.com/products/javamail/javadocs/index.html

     

    Session:会话对象

           Session是一个很容易被误解的类,这归咎于混淆视听的类名。千万不要以为这里的SessionHttpSession一样代表真实的交互会话,但创建Session对象时,并没有对应的物理连接,它只不过是一对配置信息的集合。Session的主要作用包括两个方面:

           1)接收各种配置属性信息:通过Properties对象设置的属性信息;

           2)初始化JavaMail环境:根据JavaMail的配置文件,初始化JavaMail环境,以便通过Session对象创建其他重要类的实例。

           所以,如果把Session更名为Configure也许更容易理解一些。JavaMail提供者在Jar包的META-INF目录下,通过以下文件提供了基本配置信息,以便session能够根据这个配置文件加载提供者的实现类:

    l         javamail.providersjavamail.default.providers

    l         javamail.address.mapjavamail.default.address.map

           下面是Sun提供者java.mail.default.providers文件的配置信息(位于mail.jar中):

        #  Java MailIMAP provider Sun Microsystems, Inc

        protocol=imap; type=store; class=com.sun.mail.imap.IMAPStore; vendor=Sun Microsystems, Inc;

        protocol=imaps; type=store; class=com.sun.mail.imap.IMAPSSLStore; vendor=Sun Microsystems, Inc;

        #  Java MailSMTP provider Sun Microsystems, Inc

        protocol=smtp; type=transport; class=com.sun.mail.smtp.SMTPTransport; vendor=Sun Microsystems, Inc;

        protocol=smtps; type=transport;    class=com.sun.mail.smtp.SMTPSSLTransport; vendor=Sun Microsystems, Inc;

        #  Java MailPOP3 provider Sun Microsystems, Inc

        protocol=pop3; type=store; class=com.sun.mail.pop3.POP3Store; vendor=Sun Microsystems, Inc;

        protocol=pop3s; type=store; class=com.sun.mail.pop3.POP3SSLStore; vendor=Sun Microsystems, Inc;

           这个配置文件提供了以下四个方面的信息:

           protocol:协议名称;

           type:协议类型;

           class:对应该操作类型的实现类;

           vendor:厂商名称。

           Session在加载配置文件时会按照以下优先级顺序进行:

           1)首先使用<JAVA_HOME>/lib中的javamail.providers

           2)如果1)不存在相应的配置文件,使用类路径下mail.jarMETA-INF目录下的javamail.providers

           3)如果2)不存在相应的配置文件,使用类路径下的mail.jarMETA-INF目录下的javamail.default.providers

           所以开发者可以在<JAVA_HOME>/lib目录下提供配置文件覆盖mail.jar/META-INF目录中厂商的配置。但是,一般情况下,我们无须这样做。

           Session通过JavaMail配置文件以及程序中设置的Properties对象构建一个邮件处理环境,后续的处理将在Session基础上进行。Session拥有多个静态工厂方法用于创建Session实例。

    l         static Session getDefaultInstance(Properties props, Authenticator authenticator):当JVM中已经存在默认的Session实例中,直接返回这个实例,否则创建一个新的Session实例,并将其作为JVM中默认Session实例。这个API很诡异,我们将对它进行详细的讲解。由于这个默认Session实例可以被同一个JVM所有的代码访问到,而Session中本身又可能包括密码、用户名等敏感信息在内的所有属性信息,所以后续调用也必须传入和第一次相同的Authenticator实例,否则将抛出java.lang.SecurityException异常。如果第一次调用时Authenticator入参为null,则后续调用通过nullAuthenticator入参或直接使用getDefaultInstance(Properties props)即可返回这个默认的Session实例。值得一提的是,虽然后续调用也会传入Properties,但新属性并不会起作用,如果希望采用新的属性值,则可以通过getDefaultInstance(Properties props)创建一个新的Session实例达到目的。Authenticator在这里承当了两个功能:首先,对JVM中默认Session实例进行认证保护,后续调用执行getDefaultInstance(Properties props, Authenticator authenticator)方法时必须和第一次一样;其次,在具体和邮件服务器交互时,又作为认证的信息;

    l         static Session getDefaultInstance(Properties props):返回JVM中默认的Session实例,如果第一次创建Session未指定Authenticator入参,后续调用可以使用该访问获取Session;

    l         static Session getInstance(Properties props, Authenticator authenticator):创建一个新的Session实例,它不会在JVM中被作为默认实例共享;

    l         static Session getInstance(Properties props):根据相关属性创建一个新的Session实例,未使用安全认证信息;

           SessionJavaMail提供者配置文件以及设置属性信息的“容器”,Session本身不会和邮件服务器进行任何的通信。所以在一般情况下,我们仅需要通过getDefaultInstance()获取一个共享的Session实例就可以了,下面的代码创建了一个Session实例:

           Properties props = System.getProperties();

        props.setProperty("mail.transport.protocol", "smtp");              

        Session session = Session.getDefaultInstance(props);

     

    TransportStore:传输和存储

           邮件操作只有发送或接收两种处理方式,JavaMail将这两种不同操作描述为传输(javax.mail.Transport)和存储(javax.mail.Store),传输对应邮件的发送,而存储对应邮件的接收。

           Session提供了几个用于创建TransportStore实例的方法,在具体讲解这些方法之前,我们事先了解一下Session创建TransportStore的内部机制。我们知道提供者在javamail.providers配置文件中为每一种支持的邮件协议定义了实现类,Session根据协议类型(stmppop3等)和邮件操作方式(传输和存储)这两个信息就可以定位到一个实例类上。比如,指定stmp协议和transport类型后,Session就会使用com.sun.mail.smtp.SMTPTransport实现类创建一个Transport实例,而指定pop3协议和store类型时,则会使用com.sun.mail.pop3.POP3Store实例类创建一个Store实例。Session提供了多个重载的getTransport()getStore()方法,这些方法将根据SessionProperties属性设置情况进行工作,影响这两套方法工作的属性包括:

    属性名

    说明

    mail.transport.protocol

    默认的邮件传输协议,例如,smtp

    mail.store.protocol

    默认的存储邮件协议,例如:pop3

    mail.host

    默认的邮件服务地址,例如:192.168.67.1

    mail.user

    默认的登陆用户名,例如:zapldy

    下面,我们再回头来了解SessiongetTransport()getStore()的重载方法。

    l         Transport getTransport():当Session实例设置了mail.transport.protocol属性时,该方法返回对应的Transport实例,否则抛出javax.mail.NoSuchProviderException

    l         Transport getTransport(String protocol):如果Session没有设置mail.transport.protocol属性,可以通过该方法返回指定类型的Transport,如transport = session.getTransport(“smtp”)

    如果Session中未包含Authenticator,以上两方法创建的Transport实例和邮件服务器交互时必须显示提供用户名/密码的认证信息。如果Authenticator非空,则可以在和邮件服务器交互时被作为认证信息使用。除了以上两种提供认证信息的方式外,Session还可以使用以下的方法为Transport提供认证信息。

    Transport getTransport(URLName url):用户可以通过URLName入参指定邮件协议、邮件服务器、端口、用户名和密码信息,请看下面的代码:

           URLName urln = new URLName(“smtp”, “smtp.sina.com.cn”, 25, null, “masterspring2”, “spring”);

           Transport transport = session.getTransport(urln);

           这里,指定了邮件协议为smtp,邮件服务器是smtp.sina.com.cn,端口为25,用户名/密码为masterspring2/spring

          

           消息发送的最后一部分是使用  Transport 类。这个类用协议指定的语言发送消息(通常是 SMTP)。它是抽象类,它的工作方式与 Session 有些类似。仅调用静态 send() 方法,就能使用类的 缺省 版本:

    Transport.send(message);

    或者,您也可以从针对您的协议的会话中获得一个特定的实例,传递用户名和密码(如果不必要就不传),发送消息,然后关闭连接。

    message.saveChanges(); // implicit with send()

    Transport transport = session.getTransport("smtp");

    transport.connect(host, username, password);

    transport.sendMessage(message, message.getAllRecipients());

    transport.close();

    后面这种方法在您要发送多条消息时最好,因为它能保持邮件服务器在消息间的活动状态。基本 send() 机制为每个方法的调用设置与服务器独立的连接。

           注意:要观察传到邮件服务器上的邮件命令,请用 session.setDebug(true) 设置调试标志。

     

            Session 获取消息与发送消息开始很相似。但是,在 session 得到后,很可能使用用户名和密码或使用 Authenticator 连接到一个 Store。类似于 Transport ,您告知 Store 使用什么协议:

    // Store store = session.getStore("imap");

    Store store = session.getStore("pop3");

    store.connect(host, username, password);

     

    连接到 Store 之后,接下来,您就可以获取一个 Folder,您必需先打开它,然后才能读里面的消息。

    Folder folder = store.getFolder("INBOX");

    folder.open(Folder.READ_ONLY);

    Message message[] = folder.getMessages();

    POP3 唯一可以用的文件夹是 INBOX。如果使用 IMAP,还可以用其它文件夹。

    注意:Sun 的供应商有意变得聪明。虽然 Message message[] = folder.getMessages(); 看上去是个很慢的操作,它从服务器上读取每一条消息,但仅在你实际需要消息的一部分时,消息的内容才会被检索。

    一旦有了要读的 Message,您可以用 getContent() 来获取其内容,或者用 writeTo() 将内容写入流。getContent() 方法只能得到消息内容,而 writeTo() 的输出却包含消息头。

    System.out.println(((MimeMessage)message).getContent());

    一旦读完邮件,要关闭与 folder  store 的连接。

    folder.close(aBoolean);

    store.close();

    传递给 folder  close() 方法的 boolean 表示是否清除已删除的消息从而更新 folder

          

    Message:消息对象

           一旦获得 Session 对象,就可以继续创建要发送的消息。这由 Message 类来完成。因为 Message 是个抽象类,您必需用一个子类,多数情况下为 javax.mail.internet.MimeMessageMimeMessage 是个能理解 MIME 类型和头的电子邮件消息,正如不同 RFC 中所定义的。虽然在某些头部域非 ASCII 字符也能被译码,但 Message 头只能被限制为用 US-ASCII 字符。

     

    要创建一个 Message,请将 Session 对象传递给 MimeMessage 构造器:

     

    MimeMessage message = new MimeMessage(session);

     

    注意:还存在其它构造器,如用按 RFC822 格式的输入流来创建消息。

     

    一旦获得消息,您就可以设置各个部分,因为 Message 实现 Part 接口(且 MimeMessage 实现 MimePart )。设置内容的基本机制是 setContent() 方法,同时使用参数,分别代表内容和 mime 类型:

     

    message.setContent("Hello", "text/plain");

     

    但如果,您知道您在使用 MimeMessage,而且消息是纯文本格式,您就可以用 setText() 方法,它只需要代表实际内容的参数,( MIME 类型缺省为 text/plain):

     

    message.setText("Hello");

     

    后一种格式是设置纯文本消息内容的首选机制。至于发送其它类型的消息,如 HTML 文件格式的消息,我们首选前者。

     

     setSubject() 方法设置 subject(主题):

     

    message.setSubject("First");

     

    下面的代码演示了创建一个简单邮件信息的过程:

    Message msg = new MimeMessage(session);

    msg.setSubject("Test Title");

    msg.setText("How are you!");

    msg.setSentDate(new Date());

     

     

    Address:地址

           一旦您创建了 Session  Message,并将内容填入消息后,就可以用 Address 确定信件地址了。和 Message 一样,Address 也是个抽象类。您用的是 javax.mail.internet.InternetAddress 类。

     

    若创建的地址只包含电子邮件地址,只要传递电子邮件地址到构造器就行了。

     

    Address address = new InternetAddress("president@whitehouse.gov");

     

    若希望名字紧挨着电子邮件显示,也可以把它传递给构造器:

     

    Address address = new InternetAddress("president@whitehouse.gov", "George Bush");

     

    需要为消息的 from 域和 to 域创建地址对象。除非邮件服务器阻止,没什么能阻止你发送一段看上去是来自任何人的消息。

     

    一旦创建了 address(地址),将它们与消息连接的方法有两种。如果要识别发件人,您可以用 setFrom()  setReplyTo() 方法。

     

    message.setFrom(address)

     

    需要消息显示多个 from 地址,可以使用 addFrom() 方法:

     

    Address address[] = ...;

    message.addFrom(address);

     

    若要识别消息 recipient(收件人),您可以使用 addRecipient() 方法。除 address(地址)外,这一方法还请求一个 Message.RecipientType

    
    message.addRecipient(type, address)

     

    三种预定义的地址类型是:

     

    1. Message.RecipientType.TO:发送原始的
    2. Message.RecipientType.CC:复写本,副本
    3. Message.RecipientType.BCC:密件抄送,简写为Bcc,电子邮件用语,将邮        件转发多人,但收件人看不到此邮件转发给的其他人信息

     

    如果消息是发给副总统的,同时发送一个副本(carbon copy)给总统夫人,以下做法比较恰当:

    
    Address toAddress = new InternetAddress("vice.president@whitehouse.gov");
    
    Address ccAddress = new InternetAddress("first.lady@whitehouse.gov");
    
    message.addRecipient(Message.RecipientType.TO, toAddress);
    
    message.addRecipient(Message.RecipientType.CC, ccAddress);

     

     

     Java MailAPI 没有提供电子邮件地址有效性核查机制。虽然通过编程,自己能够扫描有效字符(如 RFC 822 中定义的)或验证邮件交换(mail exchangeMX)记录,但这些功能不属于  Java MailAPI

     

    Authenticator:认证者

            java.net 类一样, Java MailAPI 也可以利用 Authenticator 通过用户名和密码访问受保护的资源。对于 Java MailAPI 来说,这些资源就是邮件服务器。 Java MailAuthenticator  javax.mail 包中,而且它和 java.net 中同名的类 Authenticator 不同。两者并不共享同一个 Authenticator,因为 Java MailAPI 用于 Java 1.1,它没有 java.net 类别。

     

           要使用 Authenticator,先创建一个抽象类的子类,并从 getPasswordAuthentication() 方法中返回 PasswordAuthentication 实例。创建完成后,您必需向 session 注册 Authenticator。然后,在需要认证的时候,就会通知 Authenticator。您可以弹出窗口,也可以从配置文件中(虽然没有加密是不安全的)读取用户名和密码,将它们作为 PasswordAuthentication 对象返回给调用程序。

    Properties props = new Properties();
    
    // fill props with any information
    
    Authenticator auth = new MyAuthenticator();
    
    Session session = Session.getDefaultInstance(props, auth);

     

    发送消息:

           发送电子邮件消息这一过程包括获取一个会话,创建并填充一则消息,然后发送。得到 Session 时,经由设置传递的 Properties 对象中的 mail.smtp.host 属性,可以指定您的 SMTP 服务器:


     

    String host = ...;
    
    String from = ...;
    
    String to = ...;
    
    
    
    // Get system properties
    
    Properties props = System.getProperties();
    
    
    
    // Setup mail server
    
    props.put("mail.smtp.host", host);
    
    
    
    // Get session
    
    Session session = Session.getDefaultInstance(props, null);
    
    
    
    // Define message
    
    MimeMessage message = new MimeMessage(session);
    
    message.setFrom(new InternetAddress(from));
    
    message.addRecipient(Message.RecipientType.TO,
    
      new InternetAddress(to));
    
      message.setSubject("Hello JavaMail");
    
      message.setText("Welcome to JavaMail");
    
    
    
      // Send message
    
      Transport.send(message);
    
    

    您应该将代码放在一个 try-catch 程序块中,这样创建和发送消息时就能够抛出异常。

     

    消息的提取:

           为读邮件,您获取一个会话,获取并连接一个用于邮箱的适宜的存储(store),打开适宜的文件夹,然后获取您的消息。同样,切记完成后关闭连接。

    
      String host = ...;
    
      String username = ...;
    
      String password = ...;
    
    
    
      // Create empty properties
    
      Properties props = new Properties();
    
    
    
      // Get session
    
      Session session = Session.getDefaultInstance(props, null);
    
    
    
      // Get the store
    
      Store store = session.getStore("pop3");
    
      store.connect(host, username, password);
    
    
    
      // Get folder
    
      Folder folder = store.getFolder("INBOX");
    
      folder.open(Folder.READ_ONLY);
    
    
    
      // Get directory
    
      Message message[] = folder.getMessages();
    
    
    
      for (int i=0, n=message.length; i<n; i++) {
    
         System.out.println(i + ": " + message[i].getFrom()[0]
    
              + "\t" + message[i].getSubject());
    
              }
    
    
    
              // Close connection
    
              folder.close(false);
    
              store.close();
    
    

    对每条消息做些什么由您决定。上面的代码块只是显示这些消息的发件人和主题。技术上讲,from 地址列表可能为空,而 getFrom()[0] 调用会抛出一个异常。

     

    要显示全部信息,您可以在用户看完 from  subject 域之后给出提示,如用户有需要,就调用消息的 writeTo() 方法来实现。


     

             BufferedReader reader = new BufferedReader (
    
                new InputStreamReader(System.in));
    
    
    
              // Get directory
    
              Message message[] = folder.getMessages();
    
              for (int i=0, n=message.length; i<n; i++) {
    
                System.out.println(i + ": " + message[i].getFrom()[0]
    
                  + "\t" + message[i].getSubject());
    
    
    
                System.out.println("Do you want to read message? " +
    
                  "[YES to read/QUIT to end]");
    
                String line = reader.readLine();
    
                if ("YES".equals(line)) {
    
                  message[i].writeTo(System.out);
    
                } else if ("QUIT".equals(line)) {
    
                  break;
    
                }
    
              }

     

     

    消息和标识的删除:

           消息的删除涉及使用与消息相关的 Flags(标志)。不同 flag 对应不同的状态,有些由系统定义而有些则由用户定义。下面列出在内部类 Flags.Flag 中预定义的标志:

    
        * Flags.Flag.ANSWERED
    
        * Flags.Flag.DELETED
    
        * Flags.Flag.DRAFT
    
        * Flags.Flag.FLAGGED
    
        * Flags.Flag.RECENT
    
        * Flags.Flag.SEEN
    
        * Flags.Flag.USER
    
    

    仅仅因为存在一个标志,并不意味着所有邮件服务器或供应商都支持这个标志。例如,除了删除消息标志外,POP 协议不再支持其它任何标志。检查是否存在新邮件,这不是个 POP 任务,而是内建于邮件客户机的任务。为找出哪些标志能被支持,可以用 getPermanentFlags()  folder 提出要求。

     

    要删除消息,您可以设置消息的 DELETED flag

    
    message.setFlag(Flags.Flag.DELETED, true);

     

    首先,请以 READ_WRITE 模式打开 folder

     

    folder.open(Folder.READ_WRITE);

     

    然后,当所有消息的处理完成后,关闭 folder,并传递一个 true 值,从而擦除(expunge)有 delete 标志的消息。

     

    folder.close(true);

     

    一个 Folder  expunge() 方法可以用来删除消息。但 Sun  POP3 供应商不支持。其它供应商有的或许能够实现这一功能,而有的则不能。IMAP 供应商极有可能实现此功能。因为 POP 只支持单个对邮箱的访问,对 Sun 的供应商来说,您必需关闭 folder 以删除消息。

     

    要取消标志,只要传递 false  setFlag() 方法就行了。想知道是否设置过标志,可以用 isSet() 检查。

     

    亲自认证:

           您已经知道  如果需要可以用一个 Authenticator 提示用户输入用户名和密码,而不是将用户名和密码作为字符串传递。在这里您会明确了解怎样更充分的使用认证。

     

    不用主机、用户名和密码与 Store 相连接,而是设置 Properties 来拥有主机,然后告诉 Session 自定义的 Authenticator 实例,如下所示:

    
    // Setup properties
    
    Properties props = System.getProperties();
    
    props.put("mail.pop3.host", host);
    
    
    
    // Setup authentication, get session
    
    Authenticator auth = new PopupAuthenticator();
    
    Session session = Session.getDefaultInstance(props, auth);
    
    
    
    // Get the store
    
    Store store = session.getStore("pop3");
    
    store.connect();

     

    然后,您创建一个 Authenticator 子类并从 getPasswordAuthentication() 方法中返回 PasswordAuthentication 对象。下面就是这样一种实现,其中用户名和密码仅占用一个域。(这不是一个 Swing 工程教程;只要将两部分输入同一个域,用逗号分隔就行。)

    import javax.mail.*;
    
    import javax.swing.*;
    
    import java.util.*;
    
    
    
    public class PopupAuthenticator extends Authenticator {
    
    
    
      public PasswordAuthentication getPasswordAuthentication() {
    
        String username, password;
    
    
    
        String result = JOptionPane.showInputDialog(
    
          "Enter 'username,password'");
    
    
    
        StringTokenizer st = new StringTokenizer(result, ",");
    
        username = st.nextToken();
    
        password = st.nextToken();
    
    
    
        return new PasswordAuthentication(username, password);
    
      }
    
    
    
    }

     

    因为 PopupAuthenticator 涉及到 Swing,它会启动 AWT 的事件处理线程。这一点基本上要求您在代码中添加一个对 System.exit() 的调用来终止程序。

     

    消息的回复:

           Message 类引入一个 reply() 方法来配置一个新 Message,包括正确的 recipient(收件人)和添加“Re”(如果没有就添加)的正确的 subject。这样做并没有为消息添加新内容,仅仅将 from  reply-to(被回复人) 头复制给新的收件人。这种方法用一个 boolean 参数指定消息只回复给发件人(false)或回复给全体(true)。

     


     

    MimeMessage reply = (MimeMessage)message.reply(false);
    
    reply.setFrom(new InternetAddress("president@whitehouse.gov"));
    
    reply.setText("Thanks");
    
    Transport.send(reply);
    
    

    在发送消息时要配置 reply to(被回复人) 地址,可以用 setReplyTo() 方法。

     

    消息的转发:

    转发消息有一点棘手。没有单独的方法可以调用,您通过对组成消息各部分的处理来组织要转发的消息。

     

    一条邮件消息可以由多个部分组成。在处理 MIME 消息时,消息中每部分都是 BodyPart,再特殊些,是 MimeBodyPart。不同的 body part(信体部件或正文部件)结合成一个容器,名为 Multipart,再特殊些,就是 MimeMultipart。要转发一条消息,您为自己的消息正文创建一个部件,要转发的消息作为另一部件。并且将两个部件结合成一个 multipart(多部件)。然后您将这个 multipart 添加到一则已写好恰当地址的消息中,并发送。

     

    本质上就是如此。要将一条消息内容复制到另一条,只要复制 DataHandler JavaBeans Activation Framework 中的类)就行了。

     

    // Create the message to forward
    
    Message forward = new MimeMessage(session);
    
    
    
    // Fill in header
    
    forward.setSubject("Fwd: " + message.getSubject());
    
    forward.setFrom(new InternetAddress(from));
    
    forward.addRecipient(Message.RecipientType.TO,
    
      new InternetAddress(to));
    
    
    
    // Create your new message part
    
    BodyPart messageBodyPart = new MimeBodyPart();
    
    messageBodyPart.setText(
    
      "Here you go with the original message:\n\n");
    
    
    
    // Create a multi-part to combine the parts
    
    Multipart multipart = new MimeMultipart();
    
    multipart.addBodyPart(messageBodyPart);
    
    
    
    // Create and fill part for the forwarded content
    
    messageBodyPart = new MimeBodyPart();
    
    messageBodyPart.setDataHandler(message.getDataHandler());
    
    
    
    // Add part to multi part
    
    multipart.addBodyPart(messageBodyPart);
    
    
    
    // Associate multi-part with message
    
    forward.setContent(multipart);
    
    
    
    // Send message
    
    Transport.send(forward);

     

     

    附件的处理:

    附件是邮件消息的相关资源,如通常不包含在消息正文里文本文件、电子表格或图像等。常见的邮件程序,如 Eudora  pine 之类,可以用  Java MailAPI 将资源 attach(附加) 到您的消息上,就可以在收到消息时得到。

     

    附件的发送:

    发送附件非常像转发消息。您建立各部分以组成完整消息。完成第一部件,即消息正文后,您添加其它部件,其中每个 DataHandler 都代表附件,而不是转发消息情况下的共享处理程序。如果从文件中读附件,附件的数据源是 FileDataSource。而如果从 URL 中读时,附件的数据源是 URLDataSource。一旦存在 DataSource,只要先把它传递给 DataHandler 构造器,最后再用 setDataHandler() 把它附加到 BodyPart。假定您要保留附件的原始文件名,最终要做的是用 BodyPart  setFileName() 方法设置与附件相关的文件名。如下所示:

     


     

      // Define message
    
      Message message = new MimeMessage(session);
    
      message.setFrom(new InternetAddress(from));
    
      message.addRecipient(Message.RecipientType.TO,
    
        new InternetAddress(to));
    
      message.setSubject("Hello  Java MailAttachment");
    
    
    
      // Create the message part
    
      BodyPart messageBodyPart = new MimeBodyPart();
    
    
    
      // Fill the message
    
      messageBodyPart.setText("Pardon Ideas");
    
    
    
      Multipart multipart = new MimeMultipart();
    
      multipart.addBodyPart(messageBodyPart);
    
    
    
      // Part two is attachment
    
      messageBodyPart = new MimeBodyPart();
    
      DataSource source = new FileDataSource(filename);
    
      messageBodyPart.setDataHandler(new DataHandler(source));
    
      messageBodyPart.setFileName(filename);
    
      multipart.addBodyPart(messageBodyPart);
    
    
    
      // Put parts in message
    
      message.setContent(multipart);
    
    
    
      // Send the message
    
      Transport.send(message);
    
    

     

    就消息引入附件时,若程序是个 servlet (小服务程序),除告知消息发送到何处外,还必需上载附件。可以将 multipart/form-data 表单编码类型(form encoding type)用于每个上载文件的处理。


     

    
    <FORM ENCTYPE="multipart/form-data"
    
        method=post action="/myservlet">
    
      <INPUT TYPE="file" NAME="thefile">
    
      <INPUT TYPE="submit" VALUE="Upload">
    
    </FORM>
    
    

    注意:消息大小由 SMTP 服务器而不是  Java MailAPI 来限制。如果您碰到问题,可以考虑用设置 ms  mx 参数的方法增大 Java 堆大小。

     

    附件的获取:

    从消息中获取附件比发送它们棘手些,因为 MIME 没有简单的关于附件的概念。当消息包含附件时,消息的内容是个 Multipart 对象。接着,您需要处理每个 Part,获取主要内容和附件。标有从 part.getDisposition() 获得的 Part.ATTACHMENT 配置(disposition)的部件(Part)无疑就是附件。但是,没有配置(以及一个非文本 MIME 类型)和带Part.INLINE 配置的部件也可能是附件。当配置要么是 Part.ATTACHMENT,要么是 Part.INLINE 时,这个消息部件的内容就能被保存。只要用 getFileName()  getInputStream() 就能分别得到原始文件名和输入流。

    
    Multipart mp = (Multipart)message.getContent();
    
    
    
    for (int i=0, n=multipart.getCount(); i<n; i++) {
    
      Part part = multipart.getBodyPart(i));
    
    
    
      String disposition = part.getDisposition();
    
    
    
      if ((disposition != null) &&
    
           ((disposition.equals(Part.ATTACHMENT) ||
    
              (disposition.equals(Part.INLINE))) {
    
        saveFile(part.getFileName(), part.getInputStream());
    
      }
    
    }
    
    

    saveFile() 方法仅依据文件名创建了一个 File,它从输入流中将字节读出,然后写入到文件中。万一文件已经存在,就在文件名后添加一个数字作为新文件名,如果这个文件名仍存在,则继续添,直到找不到这样的文件名为止。

    
    // from saveFile()
    
    File file = new File(filename);
    
    for (int i=0; file.exists(); i++) {
    
      file = new File(filename+i);
    
    }

     

    上面的代码涵盖了最简单的情况  消息中各部件恰当的标记了。要涵盖所有情况,还要在配置为空时进行处理,并且获取部件的 MIME 类型来进行相应处理。

    if (disposition == null) {
    
      // Check if plain
    
      MimeBodyPart mbp = (MimeBodyPart)part;
    
      if (mbp.isMimeType("text/plain")) {
    
         // Handle plain
    
      } else {
    
         // Special non-attachment cases here of image/gif, text/html, ...
    
      }
    
      ...
    
    }

     

     HTML 消息的处理

    发送基于 HTML 文件格式消息的工作量比发送纯文本消息多,虽然不一定非要这些多余的工作量。如何选择完全取决于给定的请求。

     

    HTML 消息的发送:

    若您所要做的全部事情是发送一份 HTML 文件的等价物作为消息,但让邮件阅读者为不能提取任何内嵌图像或相关片段而担心的话,可以使用 Message  setContent() 方法,把内容当作一个 String 传入,并将内容类型设置成 text/html

    
    String htmlText = "<H1>Hello</H1>" +
    
      "<img src=\"http://www.jguru.com/images/logo.gif\">";
    
    message.setContent(htmlText, "text/html"));

     

    在接收端,如果您用  Java MailAPI 提取消息,API 中没有内建的显示 HTML 消息的东西。  Java MailAPI 只把它看成一串字节流。要显示 HTML 文件格式的消息,您必需使用 Swing JEditorPane 或其它第三方 HTML 格式查看器组件。

     

    if (message.getContentType().equals("text/html")) {
    
        String content = (String)message.getContent();
    
        JFrame frame = new JFrame();
    
        JEditorPane text = new JEditorPane("text/html", content);
    
        text.setEditable(false);
    
        JScrollPane pane = new JScrollPane(text);
    
        frame.getContentPane().add(pane);
    
        frame.setSize(300, 300);
    
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    
        frame.show();
    
    }

     

    在消息中引入图像:

    另一方面,如果您想让 HTML 文件格式内容的消息完整(内嵌的图像作为消息的一部分),您必需把图像作为附件,并且用一个给定的 cid URL 引用图像,其中 cid 是图像附件 Content-ID 头的引用。

     

    嵌入图像的过程与附加文件到消息的过程非常相似,唯一的区别在于您必需通过设置 MimeMultipart 构造器中的子类型(或者说用 setSubType())告知 MimeMultipart 各个相关部件,并且将这个图像的 Content-ID 头设置成随机字符串,作为图像的 src  img 标记中使用。完整的演示如下。

    String file = ...;
    
    
    
    // Create the message
    
    Message message = new MimeMessage(session);
    
    
    
    // Fill its headers
    
    message.setSubject("Embedded Image");
    
    message.setFrom(new InternetAddress(from));
    
    message.addRecipient(Message.RecipientType.TO,
    
      new InternetAddress(to));
    
    
    
    // Create your new message part
    
    BodyPart messageBodyPart = new MimeBodyPart();
    
    String htmlText = "<H1>Hello</H1>" +
    
      "<img src=\"cid:memememe\">";
    
    messageBodyPart.setContent(htmlText, "text/html");
    
    
    
    // Create a related multi-part to combine the parts
    
    MimeMultipart multipart = new MimeMultipart("related");
    
    multipart.addBodyPart(messageBodyPart);
    
    
    
    // Create part for the image
    
    messageBodyPart = new MimeBodyPart();
    
    
    
    // Fetch the image and associate to part
    
    DataSource fds = new FileDataSource(file);
    
    messageBodyPart.setDataHandler(new DataHandler(fds));
    
    messageBodyPart.setHeader("Content-ID","memememe");
    
    
    
    // Add part to multi-part
    
    multipart.addBodyPart(messageBodyPart);
    
    
    
    // Associate multi-part with message
    
    message.setContent(multipart);

     

    更多相关内容
  • 有iPhone用户备份时遇到“验证失败与iCloud服务器的连接超时”,下文介绍iCloud服务器连接超时解决方法,一起来了解下吧!产生“iCloud连接超时/验证失败”的原因和解决方法:1、本地网络故障重新连接网络,或者采用...

    有iPhone用户备份时遇到“验证失败与iCloud服务器的连接超时”,下文介绍iCloud服务器连接超时解决方法,一起来了解下吧!

    产生“iCloud连接超时/验证失败”的原因和解决方法:

    1、本地网络故障

    重新连接网络,或者采用其他网络形式连接。

    2、iCloud帐户故障诊断

    使用iOS设备时,未找到创建iCloud帐户的选项。确认您设备上目前运行的是iOS5或更高版本。如果不是,请在设备上进行安装并再次尝试创建iCloud帐户。

    3、在iPhone上设置iCloud帐户期间尝试使用Apple ID登录时收到“鉴定失败”信息。

    前往“我的Apple ID”(appleid.apple.com/cn),点按“管理您的Apple ID”,然后尝试使用Apple ID登录。如果您无法登录,请按照上面提供的步骤来还原Apple ID帐户密码设置。

    4、尝试从iPhone上登录iCloud时收到“不支持此Apple ID”的错误

    根据您创建Apple ID的方式,可能无法使用当前Apple ID创建iCloud帐户。如果您的Apple ID能够与iTunes Store、App Store、Game Center、FaceTime或其他Apple服务配合使用,则应该也能用于iCloud。

    另外,如果在apple.com/jobs/cn上申请工作时创建了Apple ID,则Apple ID应该能用于iCloud。如果您的Apple ID无法与Apple服务配合使用,则可能与iCloud不兼容。请联系iCloud支持以获得帮助。

    5、打开了备份的原因,把备份关了就正常了。

    在设置-icloud-备份-关闭iCloud云备份即可!

    相关阅读:

    展开全文
  • 输入电子邮件正确格式Do you want to create an email newsletter for your website, blog, or eCommerce business? 您是否要为您的网站,博客或电子商务业务创建电子邮件通讯? An email newsletter helps you ...

    Do you want to create an email newsletter for your website, blog, or eCommerce business?

    您是否要为您的网站,博客或电子商务业务创建电子邮件通讯?

    An email newsletter helps you stay in touch with your users, bring them back to your website, and convert them into customers.

    电子邮件时事通讯可帮助您与用户保持联系,将他们带回您的网站,并将其转化为客户。

    The challenge is that many beginners find it difficult to start an email newsletter. Mainly because they feel that it would be too technical or time-consuming.

    面临的挑战是,许多初学者都很难启动电子邮件通讯。 主要是因为他们认为这太技术性或耗时了。

    That used to be the case 10 years ago, but now creating an email newsletter is so easy that even a non-techy can do it!

    十年前曾经是这种情况,但是现在创建电子邮件新闻简报是如此简单,即使是非技术人员也可以做到!

    Having built an email newsletter with over 1 million subscribers, we have decided to create an ultimate guide on how to start an email newsletter with step by step instructions.

    建立了超过100万订阅者的电子邮件通讯后,我们决定创建逐步指南,以逐步说明如何启动电子邮件通讯。

    Our goal is to help you walk through the process and set up your email newsletter the RIGHT way.

    我们的目标是帮助您逐步完成流程,并以正确的方式设置您的电子邮件通讯。

    How to easily create a newsletter

    Since this is a comprehensive guide, we have included a table of content for easier navigation.

    由于这是一本全面的指南,因此我们包含了一个目录,以便于导航。

    什么是电子邮件通讯? (What is an Email Newsletter?)

    An email newsletter is a form of online communication that allows you to send news, tips, and updates about your product, business, or non-profit.

    电子邮件时事通讯是一种在线交流形式,可让您发送有关您的产品,业务或非营利组织的新闻,提示和更新。

    In order to receive these updates, people need to join your email list by providing their email address. These users are referred to as subscribers, leads, or contacts.

    为了接收这些更新,人们需要通过提供其电子邮件地址来加入您的电子邮件列表。 这些用户称为订户,潜在顾客或联系人。

    Organizations and individuals use email newsletters in many different ways. For example, businesses use email newsletters to send users product information, new arrivals, and latest updates.

    组织和个人以多种不同方式使用电子邮件新闻通讯。 例如,企业使用电子邮件新闻通讯向用户发送产品信息,新产品到来和最新更新。

    Websites and blogs use email newsletters to send content updates, increase traffic, and building a loyal following.

    网站和博客使用电子邮件通讯来发送内容更新,增加流量并建立忠实的关注者。

    为什么要开始发送电子邮件通讯? (Why Start an Email Newsletter?)

    Did you know, that more than 75% of people visiting your website today will never find it again?

    您知道吗,今天有超过75%的人访问您的网站以后再也找不到它了?

    It is not your fault, it’s just that the internet is so huge and there is a lot of content out there.

    这不是您的错,只是互联网如此之大,那里有很多内容。

    Starting an email newsletter will allow you to convert those website visitors into subscribers. Once they join your email newsletter, you will be able to stay in touch and bring them back to your website.

    启动电子邮件时事通讯将使您能够将那些网站访问者转换为订阅者。 他们加入您的电子邮件新闻通讯后,您将能够保持联系并将其带回到您的网站。

    Basically without an email newsletter, you are losing potential subscribers and customers every day.

    基本上没有电子邮件通讯,您每天都会失去潜在的订户和客户。

    Now you may be thinking, ‘ What if we ask users to follow us on social media? Wouldn’t that provide a way to contact those users?’

    现在您可能在想: “如果我们要求用户在社交媒体上关注我们怎么办? 那不是提供联系那些用户的方法吗?

    It will, and you should definitely build a social media following. However, you don’t own those social media platforms.

    它将,而且您绝对应该建立社交媒体关注者。 但是,您没有这些社交媒体平台。

    Social media giants like Facebook and Twitter limit your audience’s reach. More importantly, most of your users may not be checking their social feeds as often.

    诸如Facebook和Twitter之类的社交媒体巨头限制了您的受众范围。 更重要的是,大多数用户可能不会经常检查他们的社交供稿。

    On the other hand, people tend to check their email inbox several times every day. Most users use a mobile device with notifications turned on for emails.

    另一方面,人们倾向于每天检查几次其电子邮件收件箱。 大多数用户使用打开了电子邮件通知的移动设备。

    For more on this topic, see our article on why building an email newsletter is so important.

    有关此主题的更多信息,请参阅我们的文章,以了解为什么构建电子邮件新闻通讯如此重要

    谁应该开始发送电子邮件通讯? (Who Should Start an Email Newsletter?)

    Many of our users often ask us if they should make a newsletter for their business, blog, or organization. Our answer is always ‘Yes’.

    我们的许多用户经常问我们是否应该为其企业,博客或组织制作时事通讯。 我们的答案始终是“是”。

    Even if you are just starting out, you should start building your newsletter from day 1. Each day you are not doing this, you are losing money, subscribers, and potential customers.

    即使您只是刚开始,也应该从第一天开始构建新闻通讯。每天,如果您没有这样做,那么您将在损失金钱,订阅者和潜在客户。

    Email marketing is a win-win situation regardless of your industry, business, or website traffic.

    无论您的行业,企业或网站流量如何,电子邮件营销都是双赢的情况。

    1. Email Marketing for Small Businesses

    1.小型企业的电子邮件营销

    Business websites, regardless of their industry or size, can always benefit from creating a newsletter.

    商业网站,无论其行业或规模如何,始终可以从创建新闻通讯中受益。

    It is the most cost-effective way to stay in touch with your existing customers, website visitors, and potential customers.

    这是与现有客户,网站访客和潜在客户保持联系的最经济有效的方法。

    Sony PlayStation Newsletter signup

    2. Email Newsletter for Ecommerce Websites

    2.电子商务网站的电子邮件通讯

    A study found that more than 44% of email recipients have made at least one purchase because of a promotional email.

    一项研究发现,超过44%的电子邮件收件人是由于促销电子邮件而至少购买了一次。

    If you run an online store, then email marketing is the most effective tool to convert abandoned carts into paying customers.

    如果您经营在线商店 ,那么电子邮件营销是将废弃购物车转化为付费客户的最有效工具。

    For a long time, eCommerce giants have been effectively using email to convert casual visitors into buyers.

    长期以来,电子商务巨头一直在有效地利用电子邮件将不定期的访客转化为买家。

    Abandoned cart emails

    3. Email Newsletter for Non-Profits

    3.非营利性电子邮件通讯

    Non-profit organizations need to reach out to their supporters for donations, support, events, and more. Other mediums like social media, phone, and physical mailing all cost a lot more money than email marketing.

    非营利组织需要与支持者联系,以获得捐赠,支持,活动等。 社交媒体,电话和物理邮件之类的其他媒介都比电子邮件营销花费更多的钱。

    Human Rights Watch newsletter signup form

    Creating an email newsletter allows non-profits to stay in touch with the general public, supporters, and donors.

    创建电子邮件新闻稿可以使非营利组织与公众,支持者和捐助者保持联系。

    Users are more likely to open emails from a non-profit that they support. In fact, 49% of millennials prefer to get updates from the organizations they support via email.

    用户更有可能打开他们支持的非营利组织的电子邮件。 实际上,有49%的千禧一代更喜欢通过电子邮件从他们支持的组织那里获取更新。

    To learn more, see this article on why email marketing is essential for non-profits.

    要了解更多信息,请参阅本文, 了解为什么电子邮件营销对于非营利组织至关重要

    4. Email Newsletter for Blogs and News Websites

    4.博客和新闻网站的电子邮件通讯

    If you want to start a blog or make a content-driven news site, then email marketing is the best way to build your audience. You will see that all popular internet marketers, influencers, and famous bloggers actively build their email lists.

    如果您想建立博客或建立以内容为导向的新闻网站,那么电子邮件营销是建立受众群体的最佳方法。 您会看到所有流行的互联网营销商,有影响力的人以及著名的博客作者都在积极地建立自己的电子邮件列表。

    Chris Brogan newsletter

    Here is why:

    原因如下:

    • You get to send email updates to users who would otherwise never return to your website again.

      您可以向用户发送电子邮件更新,否则他们将永远不会再回到您的网站。
    • You build a steady audience of loyal readers without relying on third-party platforms like search and social media.

      您可以建立稳定的忠实读者群,而不必依赖搜索和社交媒体等第三方平台。
    • search rankings can drop and your social media profiles can get suspended for no reason. On the other hand, you own your email list and have complete freedom to use it.搜索排名可能会下降,您的社交媒体资料可能会被无缘无故停权。 另一方面,您拥有自己的电子邮件列表,并拥有使用它的完全自由。

    5. Email Newsletters for Education

    5.通过电子邮件发送教育通讯

    Educational institutions need support from an engaged community of students, faculty, parents, and local businesses. Whether it is for fundraising, admissions, events, or other activities; Email is the cheapest and most direct way for schools and colleges to reach out.

    教育机构需要学生,教师,父母和当地企业的参与社区的支持。 是否用于筹款,招生,活动或其他活动; 电子邮件是学校和学院联系的最便宜,最直接的方式。

    University of California newsletter signup form

    These are just a few examples of how email newsletters can benefit businesses, individuals, and non-profits. There are many more examples out there, which is why most marketers believe that email marketing is crucial for being successful online.

    这些只是电子邮件通讯如何使企业,个人和非营利组织受益的几个例子。 还有更多示例,这就是为什么大多数营销人员认为电子邮件营销对成功在线至关重要的原因。

    That being said, let’s take a look at how you can easily start an email newsletter to grow your own business and brand.

    话虽这么说,让我们看一下如何轻松启动电子邮件新闻通讯以发展自己的业务和品牌。

    步骤1.启动电子邮件通讯 (Step 1. Starting an Email Newsletter)

    The most important thing you’ll need to start your email newsletter is an email marketing service provider. These are companies that allow you to collect email addresses and send mass emails.

    开始电子邮件新闻简讯最重要的是电子邮件营销服务提供商。 这些公司可让您收集电子邮件地址并发送大量电子邮件。

    There are literally hundreds of email marketing services in the world including Constant Contact, SendinBlue, AWeber, Drip, ConvertKit, and many more.

    实际上,世界上有数百种电子邮件营销服务,包括Constant ContactSendinBlueAWeberDripConvertKit等等。

    After trying out almost every popular email marketing service, we recommend our users to use Constant Contact. They are one of the most popular email marketing service providers in the world, and their support is great in helping people get started.

    在尝试了几乎所有流行的电子邮件营销服务之后,我们建议用户使用Constant Contact 。 他们是世界上最受欢迎的电子邮件营销服务提供商之一,它们在帮助人们入门方面提供了大力支持。

    Constant Contact offers a beginner friendly email marketing platform with simple drag and drop tools to help you quickly get started. They also have advanced email list growth tools, marketing automation, eye catching templates, and more.

    Constant Contact提供了一个对初学者友好的电子邮件营销平台,其中包含简单的拖放工具,可帮助您快速入门。 他们还具有先进的电子邮件列表增长工具,营销自动化,引人注目的模板等。

    First, you need to visit the Constant Contact website and click on the signup button. They have a 60 day free trial (no credit card required).

    首先,您需要访问Constant Contact网站,然后单击注册按钮。 他们有60天的免费试用期(无需信用卡)。

    Signup for Constant Contact

    Once you click the button, it will bring you to the signup page where you need to provide the information to create your account.

    单击该按钮后,它将带您到注册页面,您需要在其中提供创建帐户的信息。

    Fill in the signup form

    After you complete the signup, you will be redirected to Constant Contact guided set up. Click on the ‘Skip this step’ below as we will show you how to set it up later in this article.

    完成注册后,您将被重定向到“持续联系”指导的设置。 单击下面的“跳过此步骤”,因为我们将在本文后面向您展示如何进行设置。

    Skip set up wizard

    You will now reach your Constant Contact dashboard. This is where you will manage your email lists, subscribers, and send your email newsletter.

    现在,您将进入“恒定联系”仪表板。 在这里,您将管理电子邮件列表,订阅者并发送电子邮件新闻稿。

    Constant Contact dashboard

    Note: Constant Contact free trial account only allows you to send up to 100 emails. You will need to purchase their paid plan to access all the powerful features. WPBeginner users can get a special 20% off when using our Constant Contact coupon code.

    注意: Constant Contact免费试用帐户仅允许您最多发送100封电子邮件。 您需要购买他们的付费计划才能访问所有强大的功能。 WPBeginner用户使用我们的Constant Contact优惠券代码可享受20%的折扣

    步骤2.创建电子邮件列表 (Step 2. Creating an Email List)

    An email list is basically a contact list of your subscribers. Think of it as a contact book containing email addresses of all the users who sign up to receive your email newsletter.

    电子邮件列表基本上是您的订户的联系人列表。 可以将其视为一本通讯录,其中包含注册接收您的电子邮件时事通讯的所有用户的电子邮件地址。

    To keep your contacts organized, you need to create an email list.

    为了使您的联系人保持井井有条,您需要创建一个电子邮件列表。

    Simply click on the ‘Contacts’ link from the top menu and then click on the Email List link in the sidebar.

    只需单击顶部菜单中的“联系人”链接,然后单击侧栏中的“电子邮件列表”链接。

    Creating a new email list

    This page will show all your email lists. By default, Constant Contact creates an email list for you labeled ‘General Interest’. You need to click on the ‘Enter a new list’ link to create a new email list.

    此页面将显示您的所有电子邮件列表。 默认情况下,Constant Contact将为您创建一个标记为“一般兴趣”的电子邮件列表。 您需要单击“输入新列表”链接来创建新的电子邮件列表。

    Choose a name for your email list

    You’ll be asked to enter a name for your list. You can enter anything here that helps you easily identify the list.

    系统会要求您输入列表的名称。 您可以在此处输入任何有助于您轻松识别列表的内容。

    Next, click on the ‘Add list’ button, and Constant Contact will create the list for you.

    接下来,单击“添加列表”按钮,Constant Contact将为您创建列表。

    Email list created

    In order to start using this email list, you need at least one contact added to it. You can manually add a contact to your list by visiting the ‘Contacts’ page and clicking on the ‘Add Contacts’ button.

    为了开始使用此电子邮件列表,您至少需要添加一个联系人。 您可以通过访问“联系人”页面并单击“添加联系人”按钮来将联系人手动添加到列表中。

    Add contact to your email list

    This will show you a drop-down menu, asking how you would like to add contacts. You need to select ‘Type in one contact’ to continue.

    这将显示一个下拉菜单,询问您如何添加联系人。 您需要选择“键入一个联系人”才能继续。

    On the next screen, you need to enter contact information. You can add one of your own email addresses here. This will allow you to test your email campaigns.

    在下一个屏幕上,您需要输入联系信息。 您可以在此处添加自己的电子邮件地址之一。 这将使您能够测试电子邮件活动。

    Adding a contact to your email list

    After entering your contact information, click on the save button to add it. Your email list is now ready to be used.

    输入您的联系信息后,单击“保存”按钮将其添加。 您的电子邮件列表现在可以使用了。

    Now that you have created an email list, it is time to set up some basic list settings.

    现在您已经创建了电子邮件列表,是时候设置一些基本列表设置了。

    步骤3.设置您的电子邮件列表设置 (Step 3. Setting up Your Email List Settings)

    The first thing you would want to set up is a welcome email. This is the email message sent to your users when they join your email newsletter.

    您要设置的第一件事是欢迎电子邮件。 这是当用户加入您的电子邮件时事通讯时发送给您的电子邮件。

    Let’s get started.

    让我们开始吧。

    First, you need to click on the ‘Campaigns’ link from the top menu and then click on the ‘Create’ button.

    首先,您需要点击顶部菜单中的“广告系列”链接,然后点击“创建”按钮。

    Create welcome email campaign

    This will bring up a popup where you will be asked to select an email campaign type. Click on the ‘Email Automation’ to continue.

    这将弹出一个对话框,要求您选择一个电子邮件活动类型。 单击“电子邮件自动化”继续。

    Email automation campaign

    After that, you need to choose the email automation type. Click on the ‘Welcome email’ option to continue.

    之后,您需要选择电子邮件自动化类型。 点击“欢迎电子邮件”选项以继续。

    Select automated welcome email

    Next, you will be asked to select a template for your email. The builder will automatically show you ‘Welcome email’ templates that you can use as a starting point.

    接下来,将要求您为电子邮件选择模板。 构建器将自动为您显示“欢迎电子邮件”模板,您可以将其用作起点。

    Select welcome email template

    Simply click on a template to select and open it in Constant Contact’s drag and drop email builder.

    只需单击一个模板以选择它,然后在Constant Contact的拖放电子邮件构建器中将其打开。

    Creating welcome email

    From here, you will design your welcome email newsletter template.

    从这里,您将设计您的欢迎电子邮件通讯模板。

    You can start by giving your campaign a proper title, this will help you identify the campaign when you need to edit or change it in the future.

    您可以先为广告系列指定一个适当的标题,这将有助于您在将来需要修改或更改广告系列时对其进行标识。

    Click on the ‘Untitled…’ link at the top left corner to edit it. Now enter a name for your campaign, for example, welcome email, new user signup, introduction, etc.

    单击左上角的“无标题...”链接进行编辑。 现在输入广告系列的名称,例如,欢迎电子邮件,新用户注册,简介等。

    Campaign name

    After that, you can start editing the email template. It is a drag-and-drop editor, so you can simply drag elements from the left column and drop them on the canvas. You can also point and click anywhere in the email to edit it.

    之后,您可以开始编辑电子邮件模板。 它是一个拖放式编辑器,因此您只需将元素从左列拖放到画布上即可。 您也可以指向并单击电子邮件中的任意位置以进行编辑。

    Point and click to edit your welcome email

    You can replace the logo with your own, add your own header image to match your branding, customize the email subject and message text to fit your needs.

    您可以使用自己的徽标替换徽标,添加自己的标题图像以匹配您的品牌,定制电子邮件主题和消息文本以适合您的需求。

    Once you are satisfied with the design, click on ‘Save’ to store your email and then click the ‘Continue’ button.

    对设计满意后,单击“保存”以存储您的电子邮件,然后单击“继续”按钮。

    The email builder will now ask you to select an email list. Go ahead and select the list you created in the earlier step. After that, fill out the physical address form.

    电子邮件构建器现在将要求您选择一个电子邮件列表。 继续并选择您在上一步中创建的列表。 之后,填写物理地址表格。

    Welcome email settings

    Due to the anti-spam laws in many countries, you need to include physical address information in each newsletter email. This can be your business address or a P.O. box.

    根据许多国家/地区的反垃圾邮件法律,您需要在每封时事通讯电子邮件中包括实际地址信息。 这可以是您的公司地址或邮政信箱。

    Lastly, click on the ‘Activate’ button at the top right corner of the screen to save and activate your welcome email.

    最后,点击屏幕右上角的“激活”按钮以保存并激活您的欢迎电子邮件。

    Welcome email campaign set up

    You have successfully set up a ‘Welcome email’ campaign. From now on, all new users joining your newsletter will receive this email upon sign up.

    您已成功设置“欢迎电子邮件”广告系列。 从现在开始,所有加入您的新闻通讯的新用户在注册后都会收到此电子邮件。

    Some tips on writing an effective welcome email

    撰写有效的欢迎电子邮件的一些技巧

    Welcome emails have an average open rate of 50% which is higher than any other email newsletter you send.

    欢迎电子邮件的平均打开率为50%,高于您发送的任何其他电子邮件新闻稿。

    It will be the first thing new subscribers will hear from you. This is your opportunity to impress them, so they look forward to your next email newsletter.

    这将是新订户收到您的第一件事。 这是您给他们留下深刻印象的机会,因此他们期待您的下一封电子邮件时事通讯。

    • Say thanks and let your users know that you appreciate them sharing their contact information with you.

      表示感谢,并让您的用户知道您感谢他们与您分享他们的联系信息。
    • Next, you would want to introduce yourself, your business, and what you do. Keep it short and simple.

      接下来,您需要介绍自己,您的业务以及您的工作。 保持简短和简单。
    • Let your users know how often you’ll email them and what kind of content and offers they should expect.

      让您的用户知道您会多久给他们发送一次电子邮件,以及他们期望获得什么样的内容和服务。
    • If you promised users an incentive to join your email list, then include that information in your welcome email.

      如果您答应鼓励用户加入您的电子邮件列表,请将该信息包括在您的欢迎电子邮件中。
    • The best way to introduce users to your brand is by sending them to the most useful content on your website. It helps them discover content and builds engagement.

      向用户介绍您的品牌的最好方法是将他们发送到您网站上最有用的内容。 它可以帮助他们发现内容并建立参与度。

    For more tips, see this guide on how to write the perfect welcome email for new subscribers.

    有关更多提示,请参阅本指南, 了解如何为新订户编写完美的欢迎电子邮件

    步骤4.设置新闻通讯注册表单以获取更多订阅者 (Step 4. Setting up Newsletter Signup Forms to Get More Subscribers)

    Now that you have signed up with an email marketing platform and set up your email list. It is time to start promoting it.

    现在,您已经注册了电子邮件营销平台并设置了电子邮件列表。 现在是时候开始推广它了。

    The easiest way to get more subscribers is by adding the newsletter sign up forms to your website. Usually, your email marketing service would have ready-made sign up forms that you can add to your website.

    获得更多订阅者的最简单方法是在您的网站上添加新闻通讯注册表格。 通常,您的电子邮件营销服务将具有现成的注册表单,您可以将其添加到网站中。

    However, these signup forms don’t look good and sometimes don’t fit in the container where you want to place them.

    但是,这些注册表单看起来不太好,有时不能放入您要放置它们的容器中。

    Let’s take a look at how to easily add newsletter signup forms to your WordPress site. We will show you two methods, and you can choose one or both of them together.

    让我们看一下如何轻松地向您的WordPress网站添加新闻通讯注册表单。 我们将向您展示两种方法,您可以选择一种或两种。

    1. Add Newsletter Signup Form Using WPForms Lite (Free)

    1.使用WPForms Lite添加新闻通讯注册表单(免费)

    WPForms is the best drag & drop WordPress form plugin in the market. They have a free version called WPForms lite which includes built-in support to connect with your Constant Contact account.

    WPForms是市场上最好的拖放式WordPress表单插件 。 他们有一个称为WPForms lite的免费版本,其中包括内置支持,可与您的Constant Contact帐户建立联系。

    This allows you to use WPForms’ drag and drop form builder to create your newsletter sign up form.

    这使您可以使用WPForms的拖放表单构建器来创建新闻通讯注册表单。

    The first thing you need to do is install and activate the WPForms Lite plugin. For more details, see our step by step guide on how to install a WordPress plugin.

    您需要做的第一件事是安装并激活WPForms Lite插件。 有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。

    Upon activation, you need to visit WPForms » Settings page and click on the ‘Integrations’ tab.

    激活后,您需要访问WPForms»设置页面,然后单击“集成”选项卡。

    WPForms integrations

    You will see Constant Contact integration listed there. You need to click to expand it and then click on the ‘Add Account’ button.

    您将在此处看到“持续联系”集成。 您需要单击以展开它,然后单击“添加帐户”按钮。

    This will show you the information needed to connect your Constant Contact account to WPForms. Click on the link that says ‘Click here to register with Constant Contact’.

    这将向您显示将恒定联系人帐户连接到WPForms所需的信息。 单击显示为“单击此处以注册恒定联系”的链接。

    Connect Constant Contact to WPForms

    This will bring up a popup which will take you to the Constant Contact website. Click on the ‘Allow’ button to give WPForms access to your Constant Contact account.

    这将弹出一个弹出窗口,它将带您到Constant Contact网站。 单击“允许”按钮,使WPForms可以访问您的恒定联系帐户。

    Allow access

    Next, you will see an authorization code which you need to copy.

    接下来,您将看到需要复制的授权码。

    Authorization code

    Switch back to the WPForms settings page and enter the authorization code you copied earlier. You also need to provide a name for this integration.

    切换回WPForms设置页面,然后输入您先前复制的授权代码。 您还需要提供此集成的名称。

    Add authorization code

    Finally, click on the ‘Connect to Constant Contact’ button.

    最后,单击“连接到恒定联系人”按钮。

    WPForms will now connect to your Constant Contact account. You will see a ‘Connected’ label appear next to the integration.

    WPForms现在将连接到您的恒定联系帐户。 您会在集成旁边看到一个“已连接”标签。

    Constant Contact connected

    Now you are ready to create your newsletter sign up form using WPForms.

    现在,您可以使用WPForms创建新闻稿注册表单。

    Simply head over to WPForms » Add New page to launch the WPForms builder interface.

    只需转到WPForms»添加新页面以启动WPForms构建器界面。

    Creating a newsletter sign up form

    Provide a title for your form and then click on the ‘Newsletter signup form’ template.

    为您的表单提供标题,然后单击“新闻简报注册表单”模板。

    This will load up a read-made signup form with required fields already added to the form.

    这将加载一个已完成的注册表单,其中已将必填字段添加到表单中。

    Editing newsletter signup form

    You can point and click to edit form fields, change fields labels, and add more fields from the left column if needed.

    您可以指向并单击以编辑表单字段,更改字段标签,并在需要时从左栏中添加更多字段。

    Once you are satisfied with the form, you need to click on the Marketing tab to integrate it with Constant Contact.

    对表格感到满意后,您需要单击“市场营销”选项卡以将其与Constant Contact集成。

    Add new connection

    Click on the Constant Contact tab and then click on the ‘Add Connection’ button. You will be asked to provide a title for this connection. You can enter anything here and then click OK button.

    单击“恒定联系人”选项卡,然后单击“添加连接”按钮。 系统将要求您提供此连接的标题。 您可以在此处输入任何内容,然后单击“确定”按钮。

    Name your connection

    Next, you will see the settings for this connection. It will automatically detect your Constant Contact account and show it under the Select Account field.

    接下来,您将看到此连接的设置。 它将自动检测您的固定联系人帐户,并将其显示在“选择帐户”字段下。

    Below that you need to select the email list. Click on it to select the email list you created earlier.

    在其下方,您需要选择电子邮件列表。 单击它以选择您之前创建的电子邮件列表。

    Select email list and map form fields

    After that, you need to map your WPForms form fields to the Constant Contact fields. Once done, you can click on the ‘Save’ button at the top to save your sign up form.

    之后,您需要将WPForms表单字段映射到Constant Contact字段。 完成后,您可以单击顶部的“保存”按钮以保存您的注册表单。

    WPForms also makes it super easy to add your newsletter signup form anywhere on your website.

    WPForms还使在您网站的任何位置添加新闻简报注册表单变得非常容易。

    If you want to add the form to your website’s sidebar, then visit Appearance » Widgets page and add WPForms widget to a sidebar.

    如果要将表单添加到网站的侧边栏中,请访问外观»小部件页面,然后将WPForms小部件添加到侧边栏中。

    WPForms widget

    Provide a title for your widget and then select the signup form you created earlier. Don’t forget to click on the ‘Save’ button to store your settings.

    为小部件提供标题,然后选择您之前创建的注册表单。 不要忘记点击“保存”按钮来保存您的设置。

    You can now visit your website to see your newsletter signup form in action.

    现在,您可以访问您的网站以查看您的新闻简报注册表单。

    Newsletter sign up form displayed in the sidebar

    You can also add sign up form to your blog posts or pages. Simply edit the post and add the WPForms block to the content area.

    您还可以将注册表单添加到博客文章或页面中。 只需编辑帖子,然后将WPForms块添加到内容区域。

    Adding WPForms block to blog post

    After adding the block, select the newsletter signup form you created earlier and WordPress will load it inside your post. You can now save or publish your post and visit your website to see it in action.

    添加该块后,选择您之前创建的新闻简报注册表单,WordPress将其加载到您的帖子中。 现在,您可以保存或发布您的帖子,并访问您的网站以查看实际效果。

    Newsletter signup form in a WordPress post

    2. Add Newsletter Signup Form Using OptinMonster (Pro)

    2.使用OptinMonster(Pro)添加时事通讯注册表单

    For this method, we will be using OptinMonster, which is the best tool in the market to help you get more email subscribers, faster!

    对于这种方法,我们将使用OptinMonster ,它是市场上最好的工具,可以帮助您更快地获得更多的电子邮件订阅者!

    It includes dozens of high-converting signup forms like lightbox popups with exit-intent technology, 2-step optins, slide-in forms, floating bar, and more. This gives you powerful tools that you need to quickly grow your email list.

    它包括数十种高转换率的注册表单,例如具有退出意图技术的灯箱弹出窗口,两步选择,滑入表单,浮动栏等等。 这为您提供了快速增长电子邮件列表所需的强大工具。

    For more details, see our complete OptinMonster case study to learn how we used it to increase our email subscribers by 600%.

    有关更多详细信息,请参见我们完整的OptinMonster案例研究,以了解如何使用它使电子邮件订阅者增加600%。

    First, you will need to sign up for an OptinMonster account. It is a premium service and their plans start from $9 per month.

    首先,您需要注册一个OptinMonster帐户。 这是一项高级服务,他们的计划从每月9美元起。

    You can use our OptinMonster coupon code: WPB10 to get 10% off your purchase.

    您可以使用我们的OptinMonster优惠券代码WPB10享受10%的折扣。

    Once you have signed up for OptinMonster, you will reach your account dashboard.

    注册OptinMonster后,您将进入帐户信息中心。

    Let’s create your first OptinMonster campaign. Click on the ‘Create Campaign’ button to get started.

    让我们创建您的第一个OptinMonster广告系列。 点击“创建广告系列”按钮开始使用。

    Create campaign

    Next, you will be asked to select an optin type. For the sake of this guide, we will be creating a lightbox popup signup form. Below that you need to choose a template for your campaign.

    接下来,将要求您选择一种Optin类型。 为了本指南的缘故,我们将创建一个灯箱弹出窗口注册表单。 在此之下,您需要为广告系列选择一个模板。

    Choose optin type and template

    After that, you will be asked to provide a title for your campaign and enter your website address.

    之后,系统会要求您提供广告系列的标题并输入您的网站地址。

    Campaign settings

    This will launch the OptinMonster builder interface. It is a powerful drag and drop campaign builder where you can design your optin forms.

    这将启动OptinMonster构建器界面。 它是一个功能强大的拖放式广告系列构建器,您可以在其中设计您的选择表单。

    OptinMonster builder

    You can point and click to edit any item on the screen. You can also add new blocks to add different elements to your optin.

    您可以指向并单击以编辑屏幕上的任何项目。 您还可以添加新块,以向optin添加不同的元素。

    Once you are satisfied with the design, it is time to connect the OptinMonster campaign to your Constant Contact account.

    对设计满意后,就可以将OptinMonster广告系列连接到您的Constant Contact帐户了。

    Switch to the ‘Integrations’ tab from the top menu and then click on the ‘Add new integration’ button.

    从顶部菜单切换到“集成”标签,然后单击“添加新集成”按钮。

    Adding a new integration in OptinMonster

    Next, you need to select Constant Contact as your ‘Email service provider’ and then click on ‘Register with Constant Contact’ button.

    接下来,您需要选择“恒定联系人”作为“电子邮件服务提供商”,然后单击“使用恒定联系人注册”按钮。

    This will bring up a popup where you need to click on the ‘Allow’ button.

    这将弹出一个弹出窗口,您需要单击“允许”按钮。

    Allow OptinMonster to access your Constant Contact account

    Switch back to the OptinMonster and provide a name for this connection. After that, click on the ‘Connect to Constant Contact’ button.

    切换回OptinMonster并为此连接提供名称。 之后,单击“连接到恒定联系人”按钮。

    Connect Constant Contact to OptinMonster

    OptinMonster will now fetch your Constant Contact account details. You need to select the email list you created for your newsletter.

    OptinMonster现在将获取您的恒定联系帐户详细信息。 您需要选择为新闻稿创建的电子邮件列表。

    Select your email list

    Now, we will take a look at the display rules for your campaign. Display rules allow you to choose when and where to display your campaign.

    现在,我们来看看您的广告系列的显示规则。 通过显示规则,您可以选择何时何地显示广告系列。

    Display rules

    By default, OptinMonster will show the popup to any user after 5 seconds. The popup will only appear on their first pageview and will not bother your users again during the same session.

    默认情况下,OptinMonster将在5秒后向所有用户显示弹出窗口。 弹出窗口只会出现在他们的第一个综合浏览量中,并且不会在同一会话中再次打扰您的用户。

    Next, you need to switch to the Publish tab and change campaign status to Live. After that, don’t forget to click on the ‘Save’ button to store all your campaign settings.

    接下来,您需要切换到“发布”标签,并将广告系列状态更改为“实时”。 之后,别忘了点击“保存”按钮来存储所有广告系列设置。

    Publish your OptinMonster campaign

    Your OptinMonster campaign is now ready, let’s add it to your WordPress site.

    您的OptinMonster广告系列现已准备好,让我们将其添加到WordPress网站。

    First, you will need to install and activate the free OptinMonster plugin on your site. This plugin acts as a connector between your WordPress site and OptinMonster.

    首先,您需要在网站上安装并激活免费的OptinMonster插件 。 该插件可充当WordPress网站和OptinMonster之间的连接器。

    Upon activation, you need to click on the OptinMonster menu item in your WordPress admin sidebar. On the next screen, click on the ‘Connect Your Account’ button to continue.

    激活后,您需要单击WordPress管理员侧栏中的OptinMonster菜单项。 在下一个屏幕上,单击“连接您的帐户”按钮以继续。

    Connect OptinMonster to WordPress

    Next, you will be asked to enter your OptinMonster API key. You can find this information under your account on the OptinMonster website.

    接下来,将要求您输入OptinMonster API密钥。 您可以在OptinMonster网站上的帐户下找到此信息。

    Connect to OptinMonster

    After entering the API key, click on the ‘Connect to OptinMonster’ button. The plugin will now connect your website to OptinMonster.

    输入API密钥后,单击“连接到OptinMonster”按钮。 现在,该插件会将您的网站连接到OptinMonster。

    Next, you need to switch to the ‘Campaigns’ tab. This is where all your OptinMonster campaigns will appear. If you don’t see any campaigns here, then click on the ‘Refresh campaigns’ button.

    接下来,您需要切换到“广告系列”标签。 这是您所有OptinMonster广告系列的显示位置。 如果您在此处看不到任何广告系列,请点击“刷新广告系列”按钮。

    Turn on campaign on your website

    Now you need to click on the ‘Go Live’ live below the campaign you just created. After that, you can visit your website in a new Incognito browser tab to view your newsletter signup popup in action.

    现在,您需要点击刚刚创建的广告系列下方的“实时发布”。 之后,您可以在新的隐身浏览器标签中访问您的网站,以查看新闻快报注册弹出窗口。

    Newsletter sign up form

    OptinMonster is an incredibly powerful tool to quickly get more subscribers for your website.

    OptinMonster是一种功能强大的工具,可以快速为您的网站吸引更多订户。

    Following are a few other campaign types that you can create with OptinMonster.

    以下是您可以使用OptinMonster创建的其他一些广告系列类型。

    步骤5.发送您的第一个电子邮件时事通讯 (Step 5. Sending Your First Email Newsletter)

    Once you have added newsletter signup forms to your website, you will gradually start getting subscribers. After getting your initial welcome email, these new subscribers will be waiting to see what you send them next.

    将新闻简报注册表单添加到网站后,您将逐渐开始获得订阅者。 收到您的初始欢迎电子邮件后,这些新订阅者将等待着您接下来发送给他们的邮件。

    You are now ready to start sending newsletter emails.

    现在您可以开始发送新闻邮件了。

    Let’s create your first email campaign.

    让我们创建您的第一个电子邮件广告系列。

    The great thing about using Constant Contact is that it comes with an incredibly easy to use email builder with tons of beautiful templates.

    使用“持续联系”的好处在于,它附带了一个易于使用的电子邮件构建器,其中包含大量精美的模板。

    Creating your campaigns and sending newsletter emails is quite easy. Simply log in to your Constant Contact account and click on the Campaigns menu from the top.

    创建广告系列和发送时事通讯电子邮件非常容易。 只需登录到您的恒定联系帐户,然后单击顶部的“广告系列”菜单。

    Create new Constant Contact campaign

    The campaigns page lists all your current, past, and automated email campaigns. Click on the create button to start a new email.

    广告系列页面列出了您当前,过去和自动的所有电子邮件广告系列。 单击创建按钮以开始新电子邮件。

    You will be asked to select a campaign type. Click to select the ‘Email’ campaign type and continue.

    系统将要求您选择一个广告系列类型。 点击选择“电子邮件”广告系列类型,然后继续。

    Select email campaign type

    Next, you need to pick an email template for your newsletter. Constant Contact comes with several ready-made template for different industries, campaigns, and email types.

    接下来,您需要为新闻稿选择一个电子邮件模板。 Constant Contact随附了多个针对不同行业,活动和电子邮件类型的现成模板。

    Choose an email template

    All these email templates are fully customizable, and you can add your own logo and images to customize them. Once you edit and save a template, you will be able to use it for your future campaigns.

    所有这些电子邮件模板都是完全可自定义的,您可以添加自己的徽标和图像以自定义它们。 编辑并保存模板后,便可以将其用于以后的广告系列。

    We recommend starting with a simple newsletter template and customizing it with your own brand logo.

    我们建议从简单的新闻稿模板开始,并使用您自己的品牌徽标进行自定义。

    Simply click on a template to select it for your email newsletter. Constant Contact will then load the email builder with your selected template.

    只需单击一个模板以将其选择为您的电子邮件通讯。 然后,Constant Contact将使用您选择的模板加载电子邮件构建器。

    Editing your email template

    This is the same email builder that you used to create your welcome email. You can add your brand logo, point and click to add text, link, and images.

    这是您用来创建欢迎电子邮件的电子邮件生成器。 您可以添加品牌徽标,指向并单击以添加文本,链接和图像。

    Adding your blog posts to the email newsletter

    将博客文章添加到电子邮件新闻通讯中

    You can also fetch and add your blog posts to the newsletter. Click on the ‘More’ button in the left column and then drag and drop the ‘Read More’ block to your email.

    您还可以获取博客帖子并将其添加到新闻通讯中。 单击左列中的“更多”按钮,然后将“阅读更多”块拖放到您的电子邮件中。

    Adding blog posts with read more link

    Next, you need to click on the ‘Read more’ block to edit it. This will bring up a popup where you need to enter the link of the blog post you want to add.

    接下来,您需要单击“阅读更多”(Read more)块进行编辑。 这将弹出一个弹出窗口,您需要在其中输入要添加的博客文章的链接。

    Add blog post to your email

    Click on the preview button to fetch a featured image and article description and then click on the Insert button. Repeat the process to add more blog posts if needed.

    单击预览按钮以获取特色图像和文章说明,然后单击“插入”按钮。 如果需要,重复此过程以添加更多博客文章。

    Once you are satisfied with your email’s design and contents, click on the ‘Continue’ button to move forward.

    对电子邮件的设计和内容感到满意后,请单击“继续”按钮继续前进。

    Continue to email settings

    On the next screen, first, you need to select the email address you want to send this message. After that, review other email settings on the page.

    首先,在下一个屏幕上,您需要选择要发送此消息的电子邮件地址。 之后,查看页面上的其他电子邮件设置。

    Email settings and scheduling

    Lastly, you need to select whether you want to send this email right away or schedule it to send later.

    最后,您需要选择是立即发送此电子邮件还是安排其稍后发送。

    We recommend sending your emails on a fixed schedule. This helps your users anticipate the arrival of your email and sets expectations. For more on this topic, see this guide on choosing the best time to send newsletter emails.

    我们建议您按固定的时间表发送电子邮件。 这可以帮助您的用户预测电子邮件的到来并设定期望值。 有关此主题的更多信息,请参阅本指南,以选择发送新闻邮件最佳时间

    Click on the Schedule button at the top right corner of the screen to save your email.

    单击屏幕右上角的“计划”按钮以保存您的电子邮件。

    That’s all, you have successfully created your first newsletter email and scheduled to send it.

    就是这样,您已经成功创建了第一封新闻邮件并计划发送。

    Need help with writing effective newsletter emails? See these tips on writing effective email newsletters.

    在编写有效的新闻邮件方面需要帮助吗? 请参阅有关编写有效的电子邮件通讯的这些提示

    第6步。获取更多电子邮件订阅者的提示 (Step 6. Tips to Get More Email Subscribers)

    In 2018, the number of global e-mail users amounted to 3.8 billion users.

    2018年,全球电子邮件用户数量达到38亿用户。

    In another study, 48% of participants said that they would like to receive email updates from their favorite brands.

    在另一项研究中,有48%的参与者表示他们希望从自己喜欢的品牌那里收到电子邮件更新。

    This means that users prefer to get emails from their favorite businesses. Now the only question that remains is how do you get them to subscribe to your newsletter?

    这意味着用户更喜欢从自己喜欢的企业获得电子邮件。 现在剩下的唯一问题是如何让他们订阅新闻通讯?

    Luckily, email marketing has been around for a very long time. Experts are regularly experimenting, sharing, and finding new ways to grow their email lists.

    幸运的是,电子邮件营销已经存在了很长时间。 专家们定期进行试验,共享和寻找增加电子邮件列表的新方法。

    Here we will share some of our own tips that are tested and proven to work.

    在这里,我们将分享一些我们自己的技巧,这些技巧已经过测试并证明是有效的。

    1. Use multiple signup forms

    1.使用多种注册表格

    Many beginners just add a single newsletter signup form to their website and forget about it. Add multiple signup forms to your website using a variety of placements.

    许多初学者只需将一个新闻简报注册表单添加到他们的网站中,就不必再担心了。 使用多种展示位置向您的网站添加多个注册表单。

    Multiple signup forms

    However, you need to be careful not to ruin user experience with aggressive prompts to signup.

    但是,您需要注意不要以积极的注册提示破坏用户体验。

    For example, in the screenshot above, the second prompt only appears when a user scrolls down and the first signup form is no longer visible.

    例如,在上面的屏幕快照中,仅当用户向下滚动并且不再显示第一个注册表单时,才会出现第二个提示。

    Social Media Examiner uses multiple sign up forms and creative strategies which has helped them get over 250,000 email subscribers (case study).

    社交媒体审查员使用多种注册表单和创新策略,帮助他们获得了超过25万电子邮件订阅者(案例研究)

    Keep experimenting with different forms and placements to find out what gets you the best results.

    继续尝试不同的形式和展示位置,以找出能为您带来最佳效果的内容。

    2. Use lead magnets to capture more subscribers

    2.使用铅磁铁吸引更多订户

    Lead Magnets are special offers used as an incentive to join your email newsletter. These special offers could be an exclusive download, an ebook, a helpful resource, discount coupon, etc.

    铅磁铁是特殊优惠,可以用来鼓励您加入电子邮件时事通讯。 这些特别优惠可以是独家下载,电子书,有用的资源,折扣券等。

    Lead Magnets work extremely well because they offer users instant gratification and value for performing an action.

    铅磁铁的工作非常出色,因为它们可以为用户带来即时的满足感和执行动作的价值。

    You can see a live example of lead magnets just below this article, where we offer users a free download of our ultimate WordPress toolkit as an incentive.

    您可以在本文下面看到一个铅磁体的实时示例,在该示例中,我们为用户提供了免费下载我们最终的WordPress工具包的激励。

    Lead magnet example

    3. Offer Content Upgrades

    3.提供内容升级

    Similar to lead magnets, content upgrades offer users an additional piece of content or bonus content, which they can download after signing up for your newsletter.

    类似于铅磁铁,内容升级为用户提供了额外的内容或奖励内容,他们可以在注册您的时事通讯后下载。

    You can easily add content upgrades to your existing content. This can be a checklist, a PDF download of the article, a case study, a research report, and more.

    您可以轻松地将内容升级添加到现有内容。 这可以是清单,文章的PDF下载,案例研究,研究报告等。

    Content upgrade example

    For more details, see our guide on how to add content upgrades in WordPress.

    有关更多详细信息,请参阅有关如何在WordPress中添加内容升级的指南。

    4. Use social media to grow your email list

    4.使用社交媒体来增加您的电子邮件列表

    Promoting newsletter on social media

    Your website is not the only place to promote your newsletter and find new subscribers. Social media platforms can be another place to convert followers into email subscribers.

    您的网站不是宣传新闻稿和寻找新订阅者的唯一地方。 社交媒体平台可能是将关注者转换为电子邮件订阅者的另一个地方。

    For detailed tips, see our guide on how to use social media to grow your email list

    有关详细提示,请参阅我们的指南,了解如何使用社交媒体来增加电子邮件列表

    Need even more tips? Check out the following email marketing guides:

    需要更多提示吗? 查看以下电子邮件营销指南:

    第7步。如何从电子邮件通讯中赚钱 (Step 7. How to Make Money from Email Newsletter)

    One of the popular sayings among digital marketers is that “The money is in the list”. Every dollar you spend on email marketing has a return average of $32 dollars.

    在数字营销人员中流行的说法之一是“钱在清单上”。 您在电子邮件营销上花费的每一美元的平均回报为32美元。

    As your subscriber count grows, you would want to explore opportunities to monetize your email newsletter.

    随着订阅者人数的增加,您将希望探索通过电子邮件通讯获利的机会。

    Following are just some of the easiest ways to make money from your email newsletter.

    以下只是从您的电子邮件时事通讯中赚钱的最简单方法。

    1. Sell your products

    1.销售您的产品

    Sell your own products

    First, you would obviously want to use your email list to sell your own products. You can use your email list to send special offers and discount deals exclusive to your subscribers.

    首先,您显然希望使用电子邮件列表来销售自己的产品。 您可以使用电子邮件列表向订户发送专有的特价优惠和折扣优惠。

    You can also bring them back to your website by adding calls to action, offer members-only content, demo, and free samples.

    您还可以通过添加号召性用语,提供仅限会员的内容,演示和免费示例,将其带回您的网站。

    When trying to sell your own products, keep the ‘Value Value Value Pitch’ formula in your mind.

    尝试销售自己的产品时,请牢记“ Value Value Value Pitch”公式。

    It basically suggests that you should offer three times more value than your sales pitch. Most marketers agree that such emails work better than those that are nothing more than a plain sales pitch.

    它基本上建议您提供的价值应比销售宣传的价值高三倍。 大多数营销人员都认为,此类电子邮件比仅是普通的销售方式的电子邮件效果更好。

    2. Upsell products and services

    2.追加销售产品和服务

    Upselling is a sales technique to persuade customers into buying something additional like an upgrade or add-on. As your email list grows, you can send personalized offers to existing customers.

    向上销售是一种说服客户购买额外产品(例如升级或附加产品)的销售技术。 随着电子邮件列表的增加,您可以向现有客户发送个性化报价。

    Upselling through email

    Due to its highly targeted messaging and personalized offers, upsell emails tend to perform way better. This may lead many businesses to send more such emails.

    由于其高度针对性的消息传递和个性化报价,加售电子邮件的性能往往更好。 这可能导致许多企业发送更多此类电子邮件。

    You need to remember that your emails should offer value first, otherwise those emails would soon become annoying.

    您需要记住,您的电子邮件应该首先提供价值,否则这些电子邮件将很快变得令人讨厌。

    3. Affiliate marketing

    3.会员营销

    affiliate marketing

    Affiliate marketing is a referral program where an online retailer (advertiser) pays you a commission when users purchase their product using your referral link.

    联盟营销是一种推荐计划,在线零售商(广告商)在用户使用您的推荐链接购买其产品时向您支付佣金。

    You can find products and services that might interest your users and add affiliate links, reviews, and coupons in your newsletter emails.

    您可以找到用户可能感兴趣的产品和服务,并在新闻邮件中添加会员链接,评论和优惠券。

    To get started, see our beginner’s guide to affiliate marketing.

    要开始使用,请参阅我们的会员营销新手指南

    4. Advertisement or renting out your email list

    4.广告或出租您的电子邮件列表

    If your email list grows quickly, then you can make money by renting your email list.

    如果您的电子邮件列表增长Swift,那么您可以通过租用电子邮件列表来赚钱。

    You see, a lot of folks don’t realize the potential of email marketing until they realize that they could benefit immensely from an email list.

    You see, a lot of folks don't realize the potential of email marketing until they realize that they could benefit immensely from an email list.

    Lucky for you, they are now looking for someone who may already have a list of people interested in specific products, services, or industry.

    Lucky for you, they are now looking for someone who may already have a list of people interested in specific products, services, or industry.

    You can approach such advertisers directly, or you can find email list brokers like Info USA, List Giant, or Mailing List Direct.

    You can approach such advertisers directly, or you can find email list brokers like Info USA, List Giant, or Mailing List Direct.

    Step 8. Keep Your Newsletter Emails Out of Spam (Step 8. Keep Your Newsletter Emails Out of Spam)

    How to make avoid ending up in spam

    In 2012, 90% of all emails were spam. This number was reduced to 58% by the end of 2018.

    In 2012, 90% of all emails were spam. This number was reduced to 58% by the end of 2018.

    The main reason for this decline was the improved spam detection and prevention technologies used by email marketing tools.

    The main reason for this decline was the improved spam detection and prevention technologies used by email marketing tools.

    This is great news for all users and businesses. However, the AI-powered spam detection technologies are quite sensitive and can wrongfully mark your email messages as spam.

    This is great news for all users and businesses. However, the AI-powered spam detection technologies are quite sensitive and can wrongfully mark your email messages as spam.

    Following are the most common reasons for newsletter emails to end up in spam:

    Following are the most common reasons for newsletter emails to end up in spam:

    1. You didn’t use double opt-in

    1. You didn't use double opt-in

    Basically, all email marketing services including Constant Contact require users’ consent for sending them emails. This is done by the user verifying their email address after signing up.

    Basically, all email marketing services including Constant Contact require users' consent for sending them emails. This is done by the user verifying their email address after signing up.

    However, they also allow you to manually add email addresses. If you misuse this feature and add email addresses from random sources, then your messages will end up in spam.

    However, they also allow you to manually add email addresses. If you misuse this feature and add email addresses from random sources, then your messages will end up in spam.

    2. Sender email address was used for spam

    2. Sender email address was used for spam

    If your sender email address was used to send spam or malware, then your email campaigns with the same sender address will end up in spam. This is why you need to get a business email address to ensure high deliverability for your newsletter emails.

    If your sender email address was used to send spam or malware, then your email campaigns with the same sender address will end up in spam. This is why you need to get a business email address to ensure high deliverability for your newsletter emails.

    3. Misleading subject lines

    3. Misleading subject lines

    Misleading email subjects are annoying and due to many users reporting such emails, spam algorithms can now identify many such lines and mark them spam.

    Misleading email subjects are annoying and due to many users reporting such emails, spam algorithms can now identify many such lines and mark them spam.

    Following are a couple of examples of common misleading subject lines.

    Following are a couple of examples of common misleading subject lines.

    • Urgent: Update your information

      Urgent: Update your information
    • Thanks for your order!

      Thanks for your order!
    • You have won a prize

      You have won a prize

    Need some good examples? See these 160+ excellent email subject lines for inspiration.

    Need some good examples? See these 160+ excellent email subject lines for inspiration.

    4. Your email must have accurate information

    4. Your email must have accurate information

    The anti-spam laws in many countries require the sender to provide accurate from address (sender email address), complete physical address, and an unsubscribe link in the email message.

    The anti-spam laws in many countries require the sender to provide accurate from address (sender email address), complete physical address, and an unsubscribe link in the email message.

    If any of these are missing from your newsletter email, then it would most likely end up in spam.

    If any of these are missing from your newsletter email, then it would most likely end up in spam.

    Basically, you need to follow the rules and guidelines provided by your email marketing software and you’ll be able to avoid the spam folder.

    Basically, you need to follow the rules and guidelines provided by your email marketing software and you'll be able to avoid the spam folder.

    We hope this article helped you learn how to easily create an email newsletter. You may also want to see our article on how to get a free business email address to send your newsletter emails.

    We hope this article helped you learn how to easily create an email newsletter. You may also want to see our article on how to get a free business email address to send your newsletter emails.

    If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

    如果您喜欢这篇文章,请订阅我们的YouTube频道 WordPress视频教程。 您也可以在TwitterFacebook上找到我们。

    翻译自: https://www.wpbeginner.com/beginners-guide/how-to-create-an-email-newsletter/

    展开全文
  • ftp无法连接登录linux的解决方法

    千次阅读 2021-05-13 12:04:27
    #root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody 上面这个两个就是默认情况下vsftp不允许使用的账号列表,讲文件root删除,或者前面加个#号 重启一下vsftpd 服务 即可 4、将/...

    e4b27830fe9b7c95e7ca6635cb79c763.png

    1、首先安装vsftpd

    命令:yum -y install vsftpd

    之后开启服务:service vsftpd start

    2、关闭防火墙

    1) 重启后生效

    开启:chkconfig iptables on

    关闭:chkconfig iptables off

    2) 即时生效,重启后失效

    开启:service iptables start

    关闭:service iptables stop

    3、默认情况下vsftp是不允许root用户登录的,可以通过修改限制来解决这个问题首先找到vsftp的配置目录

    [root@localhost vsftpd]# pwd

    /etc/vsftpd

    [root@localhost vsftpd]# ls

    chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh

    [root@localhost vsftpd]#

    修改

    [root@localhost vsftpd]# cat ftpusers

    # Users that are not allowed to login via ftp

    #root

    bin

    daemon

    adm

    lp

    sync

    shutdown

    halt

    mail

    news

    uucp

    operator

    games

    nobody

    修改

    [root@localhost vsftpd]# cat user_list

    # vsftpd userlist

    # If userlist_deny=NO, only allow users in this file

    # If userlist_deny=YES (default), never allow users in this file, and

    # do not even prompt for a password.

    # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers

    # for users that are denied.

    #root

    bin

    daemon

    adm

    lp

    sync

    shutdown

    halt

    mail

    news

    uucp

    operator

    games

    nobody

    上面这个两个就是默认情况下vsftp不允许使用的账号列表,讲文件中root删除,或者前面加个#号 重启一下vsftpd 服务 即可

    4、将/etc/selinux/config 中的enforcing 模式改为disabled, 然后重启

    展开全文
  • wp mail smtpDo you want to set up WP Mail SMTP on your WordPress site? WP Mail SMTP is the best WordPress SMTP plugin which allows you to easily send WordPress emails using a secure mail transfer prot...
  • 文档没有指定样式的文字。 STYLEREF "1" 错误!文档没有指定样式的文字。DOCPROPERTY "Product&Project Name" 中国石油电子邮件系统DOCPROPERTY DocumentName 手机客户端使用手册PAGE 10中国石油电子邮件系统...
  • 诡异的 spring mail 发送邮件问题

    千次阅读 2019-07-04 15:29:06
    项目有个消息系统,通过 RabbitMQ 发送系统的邮件时,采用5个固定线程池去发送邮件。发现虽然有消费,但是日志却没有任何输出相关的成功或失败或抛出异常的信息。 伪代码如下,消费者主线程使用固定线程池...
  • 创建领英档案 编辑职业档案 完整的职业档案能帮助您找到机遇。了解如何通过工作经历、技能专长和教育经历版块展示您独特的职场历程。为了使职业档案更加完善,请添加志愿者工作、出版物等其他信息。同时,了解推荐...
  • Java通过 JDBC 连接数据库操作

    千次阅读 多人点赞 2022-03-14 22:19:21
    JDBC 使用3.1 创建项目并添加 MySQL 驱动3.2 使用代码操作数据库3.2.1 获得数据源3.2.2 获得连接3.2.3 获得执行器3.3.4 查询或操作数据库3.3.5 关闭数据库连接 首先,我们想要操作一个数据库服务器,需要有一个...
  • qgis 空间连接_QGIS空间连接简介

    千次阅读 2020-07-13 03:45:19
    这是一个具有大量功能的出色平台,在第一种方法上看似令人生畏。 如果您希望在地理数据分析和可视化方面有所作为,则以下基本技巧将帮助您开始使用QGIS。 探索空间连接问题 关系数据库用户熟悉表联接的概念,这...
  • MailServer搭建——邮件收发流程

    千次阅读 2015-02-12 20:10:26
    原文网址:http://vbird.dic.ksu.edu.tw/linux_server/0380mail_1.php  下面是寄出一封邮件的简单示意图,基本上,信件的流程是本地端用户(MUA)将信件从本地的邮件服务器(MTA)寄出,邮件寄存到目标的邮件...
  • qt信号槽之创建连接自定义的槽

    千次阅读 2012-11-29 10:50:49
    在第一版的Qt设计器,你可以创建你自定义的槽的信号并使他们连接起来,但是你不能直接实现你的槽,你不得不子集于该窗体,并在这个子集中对你自定义的槽编码,子集的方法依然有用,在某些情况下仍起作用(Make ...
  • 电子邮件在当今社会扮演了一个很重要的角色。越来越多的人在使用它。而且用它的人数势必会继续增加。虽然,现在已经有很多的邮件收发软件例如著名的FoxMail 但是对于大多数的非专业的人来说它还是有点难度稍嫌负责...
  • **视频会议设备连接注意事项**

    千次阅读 2020-12-19 15:53:49
    1.检查视频设备是否齐全,线路是否安装正确 线路连接依据每个接口颜色判断,每个接口颜色是对应安装的,一一对应即可 2.安装完毕后,默认话筒边缘彩灯圈是蓝色的,如果开启静音,则彩灯圈是红色的(红色图片略) 3...
  • 2021年SpringBoot面试题及答案汇总

    千次阅读 2021-10-18 10:34:05
    用来简化spring应用的初始搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序main方法运行,嵌入的Tomcat无需部署war文件,简化maven配置,自动配置spring添加对应功能...
  • 后端需要知道的关于redis的事,基本都在这里了。 此文后续会改为粉丝可见,所以喜欢的请提前关注。 你的点赞和评论是我创作的最大动力,谢谢。...• Redis将所有的数据都存放在内存,所以它的读写性能十分惊人,.
  • Java Mail(三):Session、Message详解

    万次阅读 多人点赞 2014-01-06 12:29:25
    上篇文章介绍了JavaMail并实现了一个发送邮件的简单示例,JavaMail API使用上非常灵活,比如,服务器信息可以设置到Session,也可以设置到Transport,收件人可以设置到Message,也可以设置到Transport,如何...
  • 在本指南,我们将向您展示几种不同的方法来轻松为您的企业获取免费的电子邮件域。 什么是电子邮件域? (定义) (What is an Email Domain? (Definition)) An email domain is the web address that comes after ...
  • SpringBoot集成Java Mail实现邮件发送功能 概述 springboot-email是基于SpringBoot环境集成Java Mail,并实现了邮件发送功能,包括简易邮件发送、html正文邮件发送、内联资源(静态资源)邮件发送、模板邮件发送 ...
  • java mail 学习笔记

    千次阅读 2017-03-28 22:04:20
    JAVA MAIL 学习 笔记电子邮件协议的简介SMTP 简单邮件传输SMTP是Simple Mail Transfer Protocol的...在Java Mail API,基于Java Mail的程序将与本公司或Internet服务提供商(ISP)的SMTP服务器通信,该SMTP服务器将会
  • A、主机和输出设备 B、CPU和存储器 C、主机和外部设备 D、CPU和外部设备 15、以下说法中正确的是( )。 A、计算机系统包括硬件系统和软件系统 B、小型机亦称为微机 C、计算机按其处理能力分为模拟计算机和...
  • 计算机网络(自顶向下方法)学习笔记

    万次阅读 多人点赞 2019-03-24 21:20:07
    目录 第一章 计算机网络和因特网 1.1 什么是因特网 1.1.1 组成描述 1.1.2 服务描述 1.1.3 协议 1.2 网络的边缘 1.2.1 接入网 ...1.4 分组交换的时延、丢包、吞吐量 1.4.1 分组交换...
  • 众所周知,创建数据库连接需要消耗较多的资源,且创建时间也较长。如果网站一天100万PV(假设每个页面都有DB读取或修改操作),程序就需要创建100万次连接,极大的浪费资源。 事实上,同一时间需要创建数据库连接的...
  • 如何使用OpenSSL创建自签名证书

    千次阅读 2020-01-08 10:13:52
    避免浏览器警告的下一个最佳方法是信任服务器的证书。 但是某些浏览器(例如Android的默认浏览器)不允许您这样做。 因此它将永远无法在平台上运行。 浏览器(和其他类似的用户代理) 不 信任自签名证书的...
  • Java Mail:Session、Message详解

    千次阅读 2018-06-28 15:11:03
    Session Session用于收集JavaMail运行过程的环境信息,它可以创建一个单例的对象,也可以每次创建新的对象,Session没有构造器,只能通过如下方法创造实例:static SessiongetDefaultInstance(Properties props...
  • 专升本计算机文化基础练习题 1、 世界上第一台电子计算机诞生于 ______A_ 。 A . 20 世纪 40 年代 B ....3、 有关第一台电子计算机的描述,下面不正确的是 ____C____ 。 A .第一台电子计算机叫 ENIAC...
  • 大学英语综合教程三 Unit 1至Unit 8课文内容英译 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼...
  • 计算机网络——HTTP选择题专题

    万次阅读 2020-02-21 23:25:21
    计算机网络 ... 类似与诗书中华,君子无所争,其争也君子,相互竞争是社会的常态。但是要想提高理解,获得心仪的未来,一定量的题目还是必要的...最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带...
  • HAVING class 去除列表L=['b', 'c', 'd', 'c', 'b', 'a', 'a']的重复元素,下列哪种方法不能实现?( ) A.list(set(L)) B.set(L).tolist() C.L1 = [][L1.append(x) for x in L if x not in L1]print(L1) D.d = ...
  • 为了使用方便,采用静态方法的实现方式,其中的JavaMailSenderImpl 实例是通过代码的方式创建的,脱离了Spring容器的管理。当然也可以使用Spring注入的方式: id = "propertyConfigurer" class = "org....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,251
精华内容 16,500
关键字:

创建mail连接方法中正确的是