天講講如何用word Press 和 mailchimp 創建萊斯下面的這樣的 landing page :
我認為大多數賣家有自己的獨立站或者 Shopify 做了獨立站,有時候我們需要通過折扣【大額度】折扣來收取潛在消費者的郵件信息 ,你想要得到別人的信息 ,你肯定用一個人家感興趣的或者覺得值得對等交換的東西作為誘餌去獲取該信息。
如果你真的有wordPress 獨立站,你可以用以下方式去制作簡單的某個產品的landing page。
第一登陸你的賬號 ,打開 dashboard 點擊新建頁面
我建議你們用 Elementor 插件 ,編輯頁面非常方便,如下圖所示 ,可在安裝插件區域搜索 Elementor 然后免費安裝
第二步:假如說我們是賣這個中coffe mug 我們打算做一個 70%的giveaway,如下圖所示
我們在標題里面 輸入coffee mug 70% OFF code 填寫進去 ,同時我們不想讓進去這個page 的人看到我們網站的其他信息 ,不要讓他瀏覽其他頁面,如果你這個wordpress 做的獨立站和你的這個產品不相關的情況下 你可以選擇1,2 圖里的紅框 ,并且隱藏header 和footer信息 :如下圖
第三步:繼續點擊 【使用Elemntor 編輯】 繼續前往,進入這個頁面,相當于空白的一個頁面
第四步:你在這個里面就可以 拽進來 ,調整大小字體的形式,可以自由發揮了 ,非常簡單 ,我們現在第一步需要Title ,image 以及 Text 內容拽進來,一個個設置就好了,看下面圖 :
至于下面的 subscribe to our email list 這個怎么插入 其實非常簡單,你先到你的 mailchimp 頁面點擊list,如下圖所示
你進入下面一頁 你會看到這幾個選項 ,如下圖所示
繼續點擊去之后你進入這個一個頁面,你復制所有的HTML code 在紅色方框里的code 都復制下來
你把code 復制下來之后 回到wordpress 的剛才的 elemntor 編輯的頁面 ,找到這個圖標 拽進來
然后再進入這里,把剛才從mailchimp 復制出來的code 粘貼在這個里面
最后呈現出這種效果 請看下面的圖
一定記得點擊【更新】,然后最后 這個頁面的鏈接打開的時候怎么設置突然蹦出來的 要求填寫郵件的這種效果呢?
這個需要你在wordpress 的 header或者footer 上面填寫mailchimp 代碼 ,請看下面的圖 ,你找到 wordepress 儀表盤,找到這里之后點擊去:
然后把代碼從mailchimp 拿出來 再填寫到這個位置 ,如下圖所示
最后呈現出來的效果是這樣的 ,你打開鏈接:http://bit.ly/2FFDfOv 之后手機上看到的是這樣的 畫面 ,先是這個跳出來的 填寫email的頁面
然后你要是不想輸進去 進入點擊 右上方【X】頁面會顯示下方這個 ,如圖所示
為了得到 這個code 還是照樣給郵件的,我們拿這個郵件干嘛,可以和他們郵件里交流能不能幫我們測評,這個總比在facebook上找人,找出來的人更精準,畢竟這些給你郵件的真的想這個產品。
(來源:跨境電商策)
以上內容屬作者個人觀點,不代表雨果網立場!本文經原作者授權轉載,轉載需經原作者授權同意。
上雨果網搜索“跨境資料庫”,領取歐美/東南亞各國市場商機、各大平臺熱銷品報告、跨境電商營銷白皮書!
作一封郵件和制作web頁面還是有很大不同的。當不同的瀏覽器都在不斷向標準靠近的同時,大多數郵件客戶端卻止步不前,甚至有一些是在退步的。在2007年,Microsoft 將 Outlook 的渲染引擎從 IE 轉換成 Word的渲染方式,而一些基于web的郵件客戶端,像Gmail和Hotmail,則增加了一些怪異的模式,還有Lotus Notes的一些技巧。
根據我的經驗來看,我們解決這些問題的關鍵是要關注下面三件事情。首先,保持簡單,你的郵件設計的越復雜,你的郵件在某個受歡迎的、不支持標準的客戶端上“抽風”的可能性就越大。其次,你需要將你的編碼技巧退步十年,這通常意味著我們要使用嵌套的表格,將CSS寫成內聯的形式等。最后,你需要對你的設計進行規律性的測試。
因為諸如Gmail和Outlook 2007 無法支持浮動(float)、外邊距(margin)、內填充(padding),你需要使用表格來作為你的郵件的框架。雖然表格嵌套的方法被廣泛支持,但是在對單元格的寬度、外邊距和內填充的處理方法并不一致。為了達到最優的效果,當制作表格結構時,請記住下面的技巧。
1、為每個單元格設置寬度,而不是表格
當你把表格寬度、td 寬度、td的填充和CSS的填充寫到一封郵件時,你看到的結果可能是每個郵件客戶端它們看上去都不一樣。最可靠的方法是我們將為表格的每個單元格(th,td)設置寬度,而不是表格(table)本身。如下:
永遠別指望郵件客戶端能夠計算出你沒有指定寬度的單元格的寬度。它絕對不會。同時也要避免使用基于百分比的寬度,像 Outlook 2007 這樣的客戶端從來不考慮這種寬度方式,特別是這些嵌套的表格。像素級視覺,如果你想對每個單元格做填充,可以使用表單的單元格填屬性或者用CSS的內填充,但是不要這兩種一起使用。
2、嵌套迷思
表格的嵌套相對于設置左右浮動和外邊距(margin)或者表單單元格填充的方法更加穩固。如果你能使用這種表格嵌套的方法達到相同的效果,這將會給你在那些蹩腳的(buggier)郵件終端上面獲得最好的結果。
3、使用一個容器表單來設置 body 背景色彩
很多郵件客戶端會忽略掉在CSS中或者<body>標簽中設置的背景色。針對這種情況,將你的整封郵件用一個寬度為100%的表單包起來,并且為其設置背景色。如下:
你可以使用同樣的方案在背景圖片的設置上,需要記住的是某些郵件客戶端是不支持背景圖片的,這樣你就需要設置一個背景顏色作為備份方案。
4、在單元格中避免使用多余的空格(whitespace)
盡最大可能,避免<td>標簽中出現空格。某些郵件客戶端(Yahoo!或者Hotmail)可能會在某些場景下,對單元格的上面或者下面增加額外的填充,把你的設計破壞掉。
當某些郵件設計師盡他們最大的努力去避免使用CSS時,他們又會去依賴夢魘般的<font>標簽,但實際情況是很多的CSS屬性是被大部分郵件客戶端支持的。請查看下面的跨郵件終端的綜合CSS支持列表list of CSS support,從中你也能發現一些安全的屬性和一些應該被避免使用的屬性。
1、將css寫成內聯(inline)的樣式
Gmail就是這方面的罪魁禍首。CSS被從<head>和<body>中剝離,我們別無選擇的會將樣式寫成內聯的形式。一個好消息是你可以完全自動化的完成轉化。像Premailer提供意見點擊的方式完成這一過程。我強烈建議你將此步驟作為你構建活動的最后一步,你就能感受到這個CSS的所有益處。
2、避免使用字體的簡寫和十六進制計數法
一部分郵箱客戶端會放棄對簡寫的css字體屬性的解析。比如,絕對不要將你的字體樣式設置成下面的樣子。如下:
相反,我們應該寫成下面的形式:
談到字體這個話題,我最近也在不同的郵件客戶端測試引用字體(@font-face)。結果是凄涼的,這些瀏覽器安全的字體在郵件中使用還是遙遙無期。
當我們用CSS來聲明顏色屬性時,有些郵件客戶端并不支持簡寫的16進制的顏色值,比如 color:#f60; 我們需要將其補充完整 color:#ff6600;。為了達到最優的效果,我們需要使用常規寫法。
像前面提到的單元格的間距,段落的間距也無法做到所有客戶端的一致。我看到過設計師使用兩個<br>或者用DIV寫上內聯(inline)的外邊距(margin)樣式彌補這個短板,但是我最近的測試顯示大多數情況下對段落的支持都還是比充足的(有一段時間 Yahoo! 根本不支持段落標簽)。
最好的實踐方法是對每個段落通過內聯(inline)的方法設置外邊距(margin),像下面這樣:
再次提示,在你構建郵件的時候通過在head標簽中增加樣式,然后通過Premailer將他們轉化成每個段落的內聯樣式。
如果你的設計對高度是很敏感的或者需要像素級別的完美,我強烈建議你不要將所有的段落寫到一起,而是將文本的格式化工作放到表單的單元格中來做。你可能會需要使用到表單的嵌套或者單元格填充(cellpadding)/CSS 來達到期望的樣子。下面就是一個例子:
某些郵件客戶端將會用他們的默認樣式覆蓋你的鏈接色,你可以通過兩部來防止其發生。第一,針對每一個鏈接設置一個內聯的(inline)的顏色:
接下來,增加一個冗余的 span 標簽在 a 標簽中。
也許這些方案看上去比較過激,如果這個顏色對你的設計很重要,這個多余的 span 標簽是你達到一致表現的最好解決方案。
很重要的一件需要牢記在心中的關于圖片的事情是你的訂閱者可能看不到你的圖片。如果你有這方面的準備,你就會保持你的內容簡單,并且重要的內容不通過圖片的形式來展示。
在這個思想的指導下,在使用HTML郵件的過程中,下面有一些基本的要領需要牢記:
1、避免占位圖片
雖然使用占位圖片和嵌套表格的方式在10年前很流行,許多郵件客戶端已經將其排除作為一種可靠的技術。很多客戶端會使用一個相同尺寸的空占位來替換圖片,另外一些會將所有的圖片移除。大多數郵件客戶端會給圖片賦予默認的圖片區塊,這將導致訂閱者的第一感覺很差。堅持將單元格賦予固定的寬度,讓其在沒有圖片的時候版式不會亂掉。
2、將圖片定義尺寸
如果你沒有給每個圖片設置尺寸,當圖片沒有被下載時,有些客戶端會自己發明一個他們自己的尺寸,你的版式就亂掉了。同時,確保你的所有圖片在被用到郵件中前,都被賦予了正確的尺寸。某些客戶端會忽略你代碼中設置的尺寸,而去使用真實的圖片尺寸。
3、避免使用 PNG 圖片
Lotus Notes 6 和 7 并不支持 8位(8-bit)和24位(24-bit)的 PNG 圖片,所以需要使用GIF或者JPG格式的圖片,即使這會增加而外的圖片大小。
4、為背景圖片提供備份的顏色
Outlook 2007 不支持背景圖片(aside from this hack to get full page background images working)。如果你想在你的設計中使用背景圖像,提供一個背景色作為備份支持方案。這樣就能同時解決圖片被屏蔽和Outlook 2007的問題。
5、不要忘記標注替代文本(alt text)
缺少標準的支持意味著郵件客戶端對語義化和訪問性良好的HTML郵件的破壞性是很大的。即使這樣,從圖片可能被屏蔽角度看,提供替代文本也是很重要的。這樣即使圖片在默認狀態下被限制,大多數郵件客戶端也能顯示提供的文本來替代。另外還需要技術的是某些客戶端,比如 Outlook 2007, Hotmail 和 Apple Mail 在圖片被屏蔽的時候,并不提供替代文本(alt text).
6、針對 Hotmail 使用顯示hack
令人費解的是,Windows Live Hotmail 對每個圖片增加了幾個像素的填充。一個變通的方案就是使用下面的顯示屬性來解決這個問題。
這樣就能移除掉Hotmail的填充值,但是你也可能會給其它客戶端埋下隱患。
7、避免使用浮動屬性(float)
Outlook 2007 和早期版本的 Notes 并不支持浮動屬性(float)。在郵件中我們可以使用對齊屬性在針對圖像標簽做到浮動圖片的目的。
如果你在 Yahoo!的郵件中發現圖片的怪異表現,增加 align="top" 可能能夠解決你遇到的問題。
由于缺少 Javascript 或者其他對象標簽(object tag)的支持,視頻郵件最大的程度就是gif動畫(如果你認為那是視頻的話)。盡管如此,我最近做的一些關于用html5 videio 標簽的測試結果,還是讓人感覺不錯。
HTML 5的標簽目前在一部分郵件終端是無法運行的,包括 Apple Mail,Entourage 2008, MobileMe 和 iPhone.作為如果視頻不被支持的補救方法,你可以提供穩定的備選內容,比如gif 動畫或者一個可以點擊到瀏覽器播放視頻的圖片。
當然,你是否需要將視頻添加到你的郵件里面,那就是另外一個議題了,如果你的答案是肯定的,你可以使用這些代碼案例。
移動端有機胺的情況近期顯得比較雜亂了,隨著iPhone,Android的發明和Palm和RIM的改進,認為移動端電子郵件終端不重要的年代一去不復返了。
為了給移動端訂閱用戶良好的體現,我們在編碼的過程中也有幾個關鍵點需要牢記心中。
1、保持寬度小于600像素
受限于郵件客戶端的視窗,這條規則來移動視窗到來之前的年代就很重要。事實上,iphone 的視窗是320像素,Droid是480像素,Blackberry大概360像素。堅持最大600像素寬的設計,能夠讓你的郵件縮小到上面提到的設備上面依然可讀。這個尺寸在桌面端和web端的預覽效果也很好。
2、注意文本尺寸的自動調整
作為一個好的特性,基于webkit郵件客戶端(比如 iPhone, Pre 和 Android) 能夠自動調整文本的大小來提高閱讀性。如果你的測試結果表明這項特點給你帶來的好處是破外了你的設計,你可以通過下面的屬性禁用:
雖然近幾年郵件客戶端對標準的支持并沒有取得長足的進步,但是某些郵件客戶端的改變卻從未停止(有好有壞),基于 web 的客戶端,如 Yahoo!、hotmail 和 Gmail 在這方面乏善可陳。我看到過無數次可行的設計方案被停止支持,沒有任何解釋。
基于這個原因,你也要對你的郵件設計保持規律的測試。我發現每個月進行一些快速的測試的小技巧,特別基于web的客戶端。好的消息是經過幾次設計和測試,你將會從這些雜亂無章中找到規律。一些潛在的陷阱將變的可以預計,一個對郵箱友好的設計模型也會在你心中成型。
本文參考“新浪UED”:創建堅如磐石的HTML郵件
郵件發送支持的內容類型如下:
發送模板郵件需要用到spring-boot-starter-thymeleaf,其他其他郵件內容不需要該依賴
<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>
spring.mail.host=smtp.163.com
spring.mail.username=xxx@163.com
# 注意這里的密碼不是郵箱的登錄密碼
spring.mail.password=郵箱客戶端授權碼
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
注意:如果密碼不對在發送郵件中會報異常javax.mail.AuthenticationFailedException: 535 Error, 如果設置了也開啟了還是不行再重新設置一下
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Component
public class MailUtil {
private final Logger logger=LoggerFactory.getLogger(getClass());
@Autowired
JavaMailSender mailSender;
@Autowired
TemplateEngine templateEngine;
/**
* 發送簡單郵件
* @param from 發送人
* @param to 接收人
* @param carbonCopy 抄送人
* @param subject 主題
* @param content 內容
*/
public void sendSimpleEmail(String from, String[] to, String[] carbonCopy, String subject, String content) {
long startTimestamp=System.currentTimeMillis();
logger.info("Start send mail ... ");
try {
SimpleMailMessage message=new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setCc(carbonCopy);
message.setSubject(subject);
message.setText(content);
mailSender.send(message);
logger.info("Send mail success, cost {} million seconds", System.currentTimeMillis() - startTimestamp);
} catch (MailException e) {
logger.error("Send mail failed, error message is : {} \n", e.getMessage());
}
}
/**
* 發送html郵件
*/
public void sendHtmlEmail(String deliver, String[] receiver, String[] carbonCopy, String subject, String content, boolean isHtml) {
long startTimestamp=System.currentTimeMillis();
logger.info("Start send email ...");
try {
MimeMessage message=mailSender.createMimeMessage();
MimeMessageHelper messageHelper=new MimeMessageHelper(message);
messageHelper.setFrom(deliver);
messageHelper.setTo(receiver);
messageHelper.setCc(carbonCopy);
messageHelper.setSubject(subject);
messageHelper.setText(content, isHtml);
mailSender.send(message);
logger.info("Send email success, cost {} million seconds", System.currentTimeMillis() - startTimestamp);
} catch (MessagingException e) {
logger.error("Send email failed, error message is {} \n", e.getMessage());
e.printStackTrace();
}
}
/**
* 發送帶附件的郵件
*/
public void sendAttachmentFileEmail(String deliver, String[] receiver, String[] carbonCopy, String subject, String content, boolean isHtml, String fileName, File file) {
long startTimestamp=System.currentTimeMillis();
logger.info("Start send mail ...");
try {
MimeMessage message=mailSender.createMimeMessage();
MimeMessageHelper messageHelper=new MimeMessageHelper(message, true);
messageHelper.setFrom(deliver);
messageHelper.setTo(receiver);
messageHelper.setCc(carbonCopy);
messageHelper.setSubject(subject);
messageHelper.setText(content, isHtml);
messageHelper.addAttachment(fileName, file);
mailSender.send(message);
logger.info("Send mail success, cost {} million seconds", System.currentTimeMillis() - startTimestamp);
} catch (MessagingException e) {
logger.error("Send mail failed, error message is {}\n", e.getMessage());
e.printStackTrace();
}
}
/**
* 發送模板郵件
*/
public void sendTemplateEmail(String deliver, String[] receiver, String[] carbonCopy, String subject, String template, Context context) {
long startTimestamp=System.currentTimeMillis();
logger.info("Start send mail ...");
try {
MimeMessage message=mailSender.createMimeMessage();
MimeMessageHelper messageHelper=new MimeMessageHelper(message);
String content=templateEngine.process(template, context);
messageHelper.setFrom(deliver);
messageHelper.setTo(receiver);
messageHelper.setCc(carbonCopy);
messageHelper.setSubject(subject);
messageHelper.setText(content, true);
mailSender.send(message);
logger.info("Send mail success, cost {} million seconds", System.currentTimeMillis() - startTimestamp);
} catch (MessagingException e) {
logger.error("Send mail failed, error message is {} \n", e.getMessage());
e.printStackTrace();
}
}
}
src/main/resource/templates/mailTemplate.html
<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
[[${content}]] <br/>
[[${content}]] <br/>
[[${content}]] <br/>
</body>
</html>
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailApplicationTests {
@Autowired
private MailUtil mailUtil;
@Test
public void sendSimpleEmail() {
String deliver="xxx@163.com";
String[] receiver={"xxx@gmail.com"};
String[] carbonCopy={"xxx@qq.com"};
String subject="This is a simple email";
String content="This is a simple content";
try {
mailUtil.sendSimpleEmail(deliver, receiver, carbonCopy, subject, content);
} catch (Exception e) {
assertFalse("Send simple email failed", true);
e.printStackTrace();
}
}
@Test
public void sendHtmlMail(){
String deliver="xxx@163.com";
String[] receiver={"xxx@gmail.com"};
String[] carbonCopy={"xxx@qq.com"};
String subject="退信代碼說明";
String content="<h1>org.springframework.mail.MailSendException: Failed messages: " +
"com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp9,DcCowAAXf2r4c8da2cPWBQ--." +
"33626S3 1523020853,please see " +
"http://mail.163.com/help/help_spam_16.htm?ip=43.243.148.212&hostid=smtp9&time=1523020853</h1>";
boolean isHtml=true;
mailUtil.sendHtmlEmail(deliver, receiver, carbonCopy, subject, content, isHtml);
}
@Test
public void sendAttachmentFileEmail() {
String FILE_PATH="/Users/mengday/Desktop/02.png";
String deliver="xxx@163.com";
String[] receiver={"xxx@gmail.com"};
String[] carbonCopy={"xxx@qq.com"};
String subject="退信代碼說明";
String content="<h1>org.springframework.mail.MailSendException: Failed messages: " +
"com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp9,DcCowAAXf2r4c8da2cPWBQ--." +
"33626S3 1523020853,please see " +
"http://mail.163.com/help/help_spam_16.htm?ip=43.243.148.212&hostid=smtp9&time=1523020853</h1>";
boolean isHtml=true;
File file=new File(FILE_PATH);
String fileName=FILE_PATH.substring(FILE_PATH.lastIndexOf(File.separator));
try {
mailUtil.sendAttachmentFileEmail(deliver, receiver, carbonCopy, subject, content, isHtml, fileName, file);
} catch (Exception e) {
e.printStackTrace();
assertFalse("Send attachment file email failed", true);
}
}
@Test
public void sendTemplateEmail() {
String deliver="xxx@163.com";
String[] receiver={"xxx@gmail.com"};
String[] carbonCopy={"xxx@qq.com"};
String subject="DT:SPM 發送的郵件內容包含了未被許可的信息,或被系統識別為垃圾郵件。請檢查是否有用戶發送病毒或者垃圾郵件";
String template="mailTemplate";
String content="554 DT:SPM 發送的郵件內容包含了未被許可的信息,或被系統識別為垃圾郵件。請檢查是否有用戶發送病毒或者垃圾郵件";
Context context=new Context();
context.setVariable("content", content);
try {
mailUtil.sendTemplateEmail(deliver, receiver, carbonCopy, subject, template, context);
} catch (Exception e) {
e.printStackTrace();
assertFalse("Send template email failed", true);
}
}
}
注意:如果標題和內容過于簡單,或者包含test之類的內容,163會認為這是垃圾郵件,會造成發送失敗,報以下異常,解決辦法就是將發送的表體和內容寫的比較真實點
*請認真填寫需求信息,我們會在24小時內與您取得聯系。