Contact Form7 配合 WP SMTP 来发送外贸网站询盘提醒邮件

料神Sam2017-03-08Wordpress,外贸建站39530 次访问68 评论

使用 Contact Form 7 可以很容易让我们做出联系或者询价的表单,在普通的 PAGE 页面放 Contact Form 7 的表单代码即可生成表单,再设置一下就可以使用了。

但很多人不知道如何设置,以至于安装上 Contact Form 7 这个 WP 插件以后不能成功发送询价或留言邮件,于是应要求特写此篇教程。


首先,看你是 VPS 还是 Virtual Host(虚拟主机)。如果是后者,多数应该都支持 php mail 函数( 需要 sendmail 组建支持),这样可以实现用户注册时邮箱提醒或者评论提醒,或者提交留言和询价表单提醒。而如果你是 VPS,通常是一个裸服务器环境,并没有预装 sendmail,所以没办法发送邮件。但如果你用 WordPress 建站,则可以使用一些插件用 SMTP 模式来发送邮件解决这个问题。

更新注意:这篇文章是以前针对用 VPS 建站来写的。
如果你用的是 SiteGround 虚拟主机,就不用看这篇文章的方法了。SiteGround 
设置 Contact Form 7 插件获取询盘邮件具体见这篇教程:SiteGround 虚拟主机使用 Contact Form 7 插件发送询盘邮件

在 WordPress 网站后台,你应该已经安装了 Contact Form 7 这个插件,此时你可以下载插件 WP SMTP (现在该插件已搜不到了,可以选用 WP Mail SMTP by WPForms 插件)。接着按照本教程的设置一步步来设置:

设置的难点:关键就在于 WP SMTP 的设置 和 CONTACT FORM 7 中 Mail 选项卡的配置。只要设置对,肯定没问题。

一、WP SMTP 设置一个中转邮箱(自动发询盘提醒/留言提醒的邮箱)

比如,某外贸企业网站为 www.xyzpcb.com。该企业使用网易付费企业邮箱,于是把 design@xyzpcb.com 这个邮箱作为自动发件邮箱。SMTP 服务器的设置信息均按照网易付费企业邮箱来填写。

wp-smtp-setting1


你可以使用任意邮件服务商的 SMTP 服务器。用哪个服务商的邮箱,就填写哪个邮箱服务商的 SMTP 服务器信息。这些基本在邮箱服务商的网站常见问题里都会有,如果不清楚问一下客服。

二、Contact Form 7 设置最终接收邮箱

请按照如下截图的格式填写,保证不会出错。主要是第 2 张图 Mail 选项卡里的写法要注意准确。每一个中括号括起来的内容都是一个标签参数,按照截图那样来填写即可。

contact-form-7-form


Form 选项卡中我们可以做一些改良,把原来的代码全部删除,复制以下代码粘贴进去。(如果担心有问题,可以先把当前的代码保存到记事本或文本编辑器中)

<h2 style="font-size: 25px; line-height: 35px;" data-inline-fontsize="true" data-inline-lineheight="true" data-fontsize="25" data-lineheight="35"><i class="fa fa-envelope-o"></i> We will answer your email shortly!</h2>

<label> [text* your-name placeholder "Name*"] </label>

<label> [email* your-email placeholder "Email*"] </label>

<label> [text* your-country placeholder "Country*"] </label>

<label> [text your-subject placeholder "Subject"] </label>

<label> [textarea your-message placeholder "Message"] </label>

[submit "Send"]

接着,配置 Mail 选项卡。

contact-form-7


最终的效果就是客户从网站 https://www.xyzpcb.com/contact  网站联系页面上发了留言询价,这个询价内容会被 design@xyzpcb.com 邮箱发送到 judy@xyzpcb 邮箱中去,实现询价或留言的自动提醒。

在 [your-message] 下方你还可以隔一行,加上这行代码,会显示发表留言或者询价的留言者的 IP 和留言具体页面地址:

IP is [_remote_ip], from [_url]

最终收到的提醒邮件示例如下:

三、注意事项

如果你严格按照我的截图来做,却不成功,那么有两个可能:

  • 1)你的最终收件邮箱如果是企业邮箱,那可能该企业邮箱的 MX 记录没有做好
  • 2)可能是配置 WP SMTP 和 Contact Form 7 时测试多了。发太多一两句话的测试邮件,中转邮箱照发,但邮件服务器有反垃圾邮件机制,可能就当成垃圾邮件拦截了。
    之前帮一个学员弄的时候就是这样。用 info 邮箱来做中转邮箱配置 WP SMTP 的时候发了好几封一两句话的测试邮件,网易当成垃圾邮件了,后来联系网易企业邮箱的客服,跟他说 info 这个邮箱在测试发件才解决。所以之前我走的坑比较多,大家按照我截图来做,就不会入坑了。
  • 3)如果你使用的是虚拟主机商送的免费企业邮箱,则很可能是不成功的

注意细节特别是 Contact Form 7 的 Mail 选项卡,可能写错一个标签或者写错位置就会出错。

四、再来一个参考例子

某外贸企业网站为 www.xyzfpc.com。该企业使用腾讯付费企业邮箱,于是把 info@xyzfpc.com 这个邮箱作为自动发件邮箱。SMTP 服务器的设置信息均按照腾讯付费企业邮箱来填写。

treefpc-wp-smtp-setting


treefpc-contact-form-7


最终的效果就是客户从网站 https://www.xyzfpc.com/contact  网站联系页面上发了留言询价,这个询价内容会被 info@xyzfpc.com 邮箱发送到 sales@xyzfpc.com 邮箱中去,实现询价或留言的自动提醒。

五、发送速度

表单提交的处理速度取决于你的中转邮箱服务器的处理速度。腾讯和网易两家企业邮箱,经过我多次测试,明显腾讯的海外 SMTP 服务器(hwsmtp.exmail.qq.com,如截图中所示)会在处理速度上更快一些。

目前腾讯付费企业邮箱做的很不错,结合微信等等功能也挺强的,在国外期间直接就可以微信处理邮件。以前我每次出国在国外酒店处理邮件,从国外连接国内的网易邮箱 SMTP 服务器,发送邮件非常慢(国外酒店的网速访问国内服务器简直要命)。

所以我也打算等网易付费企业邮箱到期后换用腾讯的了。

以上,本文 Over!如果对你有帮助,您可以赞助打赏,谢谢!

本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。

分享到: 微信 新浪微博 QQ Qzone
料神Sam
料神Sam
识不足则多虑,威不足则多怒,信不足则多言。

68条评论

发表我的评论

取消评论

邮箱白名单说明:最近料网自动提醒邮件经常会被一些邮件服务商拦截。为了您顺利并及时地收取留言被回复的提醒邮件,请在您邮箱中把料网 liaosam.com 加入白名单域名。

我不是机器人
设为私密评论
添加表情

Hi,您需要填写昵称和邮箱!

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
呃,评论有点多呢... 料网小秘书为您玩命加载中...
  1. #0
    lancy

    你好! 用 godaddy 虚拟主机 设置 contact form 时候可以参照这篇文章吗? 是企业邮箱,域名不是这个怎么设置呢?

    2年前 (2020-06-22)回复
  2. #0
    Simon

    Hello~ Liao Sam,晚上好! 非常高兴可以看到你的网站,并且学到了很多东西! 你的文章实打实的,干货满满! 在这里请教一个问题: 如果你有时间解释,那将会是我的荣幸! 请问 Form 7 在网站的页面上图文表单都显示正常,但是在手机上却不行了,图片被表单压住! 检查了下,发现主题的其他页面和文章都是自适应的,兼容的比较好,唯独行动端表单不行 :cry:

    2年前 (2020-03-10)回复
  3. #0
    猫哥

    你好,我在 WP 后台测试了,邮件发送成功,gmail 邮箱也收到邮件。但去网站端 C7 发邮件的时候发送不了。总是提醒“THERE IS AN ERROR…..”麻烦问下哪里的问题。

    3年前 (2019-12-11)回复
  4. #0

    不知道有没有人和我一样理解错误的,比如 info 中转到 sales,info 这个是看不到邮件的。不算是提交到 info,本身就是网站接收到数据,然后做成邮件,用 info 的身份发出去 因为 sales 的不是自己在用,我用的是 info,info 没有收到搞得我以为失败了,来来回回折腾好几个小时,乌龙一把。 感谢料神老师,跟着你的博客一步一步建站的。

    3年前 (2019-02-13)回复
    • 老猫

      @Mia 怎么我的 SMTP 测试邮件成功,但是网站端发了 N 次,就是发不出邮件呢

      3年前 (2019-12-18)回复
  5. #0
    cathy

    料神老师 您好, 我现在遇到了个问题,刚换了 G Suite 企业邮箱,网站后台也要换成 gmail,但是捣鼓了一下午就是没有成功,easy wp smtp 和 contact form 7 我不知道到底是哪弄错了,form7 一直发送不成功,烦请您有时间给指导一下,多谢。 (之前腾讯企业邮箱是 ok 的,现在换了就不成功了)

    4年前 (2018-10-07)回复
  6. #0
    Amy Zhang

    老师,我根据您的贴子方法操作了,在 WP Mail SMTP by WPForms 里设置完成之后,做 Email testing 不成功,提醒“Could not authenticate your smtp account ” 购买的是 Bluehost 中国的美国主机,我用的是 Bluehost 的免费邮箱。。 我测试用 163 的邮箱来使用,也是得到“Could not authenticate your smtp account ” 这个提醒。 老师我这是什么问题呢?是 Bluehost 服务器的问题吗,我有 Faxmail 客户端收发邮件正常。麻烦老师在百忙之间帮我分析一下好吗?谢谢。

    4年前 (2018-07-28)回复
  7. #0
    小人物

    老师,如果我吧邮箱解析到 LNODE 管理,是不是两个邮箱都必须要是站点域名啊,不能用其他的域名。 我用 SMTP 显示失败,如果删了就是现实发送成功,但是就是不到最终收件箱,用的 ZOHO 免费企业邮箱,感觉免费的 SMTP 的功能好像都没开。是不是还是把邮箱解析到 NAMESILO 好处理点,那样我可以用 GMAIL 来中转

    4年前 (2018-07-03)回复
  8. #0

    该评论为私密评论

    4年前 (2018-05-29)回复
  9. #0
    plusplastic

    该评论为私密评论

    4年前 (2018-05-23)回复
  10. #0
    rena

    中转邮箱我用的 hotmail, mail 设置 from 那里提示 Sender email address does not belong to the site domain. 。

    4年前 (2018-05-15)回复
  11. #0
    cjing

    contact form 7 设置的表单已经把短代码复制到了我的 contact us 文章底下。 可是为什么我在前台发信息的时候,提示的是“发生错误,请稍后再试”? 这是表单没插入好的原因,还是邮箱关联没有弄好?

    4年前 (2018-04-21)回复
    • @cjing 该评论为私密评论

      4年前 (2018-05-29)回复
    • xiaoxian

      @cjing 我网站也遇到这样问题了,请问你解决了吗

      4年前 (2018-07-30)回复
      • cjing

        @xiaoxian 我已经自己解决了 23333 只要把接收邮件设置一下就可以了

        4年前 (2018-08-01)回复
  12. #0
    Jenny

    暂时用 BLUEHOST 的企业邮箱,完全按照料神的步骤操作没问题!感谢料神详细的教程,菜鸟一学就会。

    4年前 (2018-04-02)回复
    • Amy Zhang

      @Jenny Jenny 同学,请教一下,我也是按料神的步骤操作 N 次,我也是 Bluehost 邮箱,为什么我在 Email Testing 时会说 “Could not authenticate your smtp account ” 我的账号是没有问题的。 我用 163 邮箱测试也是 提醒“Could not authenticate your smtp account ” 我买的是 Bluehost 中国的美国主机。我该怎么办呢。怎么样才可以解决这个问题呀。

      4年前 (2018-07-28)回复
  13. #0
    York

    料神您好,我装的是 WP Mail SMTP by WPForms 插件,但是测试一直失败 我中转邮箱是腾讯企业邮箱,设置里最下面输入中转邮箱的账号密码,按保存后,显示的却是 wordpress 的登陆账号和密码。请问这是什么情况???

    4年前 (2018-02-27)回复
    • Gavin

      @York @York 你好,我目前碰到的问题和你一模一样,一直显示的是 wordpress 的登陆账号和密码,测试也一直失败,请问问题解决了吗?

      4年前 (2018-03-13)回复
      • Allen

        @Gavin Gavin,我用的也是腾讯免费邮箱。SMTP host:smtp.email.qq.com, 一直 test 失败,显示无法连接到服务器。。。你们有解决方法吗?

        4年前 (2018-04-14)回复
      • jeff

        @Gavin 我也是这样,请问你解决了吗?

        4年前 (2018-05-03)回复
    • jeff

      @York @York 我也是同样的情况,请问你解决了吗?

      4年前 (2018-05-03)回复
  14. #0
    Ronny

    我用的是腾讯的免费企业邮箱,装的是 WP Mail SMTP by WPForms 插件,按照料神的教程一步步做的,遇到以下几个问题,请料神和懂的朋友帮忙解答: 1.WP Mail SMTP by WPForms 插件里的设置只有 “from email” “from name”可以按照教程写,其他的设置没有 2.在 contact form 7 遇到了和其他学员一样的问题,Additional Headers 出现 Invalid mailbox syntax is used in the Reply-To field。在[your-email] 后面加上 (中转邮箱)就通过了。 3.这样设置完后,在网上发询盘测试,失败。显示 THERE WAS AN ERROR TRYING TO SEND YOUR MESSAGE. PLEASE TRY AGAIN LATER. 4.另外,在 WP Mail SMTP by WPForms setting 后面的 test 里,测试也是失败的。

    4年前 (2018-02-24)回复
    • Harry

      @Ronny test 失败了是否是你 FROM EMAIL 和下面的 USERNAME 的邮箱不一致呢?我刚开始也是这个问题,测试失败了。后来测试成功了。但是在网站中发送信息显示失败。

      4年前 (2018-02-25)回复
      • Ronny

        @Harry 你是说在 setting 那里的 from email 和 test 那里要输入的邮箱 必须是同一个?

        4年前 (2018-02-25)回复
      • Ronny

        @Harry 哦 我知道了,你说的是这两个地方都在 setting 那里,可是我用的 WP Mail SMTP by WPForms 插件,setting 那里只有四项内容,“from email” “from name”和下面两个默认选项,没有教程中那么多内容要填。

        4年前 (2018-02-25)回复
      • York

        @Harry 你会,我也是 from email 和 test 那里出了问题,我输入同一个邮箱,然后保存,页面刷新后,下面的邮箱名字自动变成了另一个英文(是我登陆 wp 的账号)。然后我进行 test,失败了

        4年前 (2018-02-27)回复
    • 无随

      @Ronny 我页遇到同样的问题,请问你解决了吗?

      4年前 (2018-03-19)回复
  15. #0
    Harry

    Sam,新年好!我设置好 WP Email Smtp Settings 后,测试没有问题。但是通过网站中表单来提交的时候,就出现这个错误提示“THERE WAS AN ERROR TRYING TO SEND YOUR MESSAGE. PLEASE TRY AGAIN LATER.” 网站中的表单的内容填写如下: TO:aaa@163.com From : [your-email] 其中 abc 为域名 Additional Headers : Reply-To : abc@abc.com 请问是哪里出了问题呢?我检查了好多次都没发现问题。谢谢!

    4年前 (2018-02-24)回复
  16. #0
    Judy

    在填写 reply to 的时候,照着文章填写,却出现这段话, Invalid mailbox syntax is used in the Reply-To field. 不可以填写[your-email] 标签,填写企业邮箱,就没有错误提示,是什么原因

    4年前 (2018-02-06)回复
    • kit2hang

      @Judy 同遇到这个问题。是不是要将 your-email 换成邮箱地址,那到底填中转邮箱还是最终收到的邮箱?

      4年前 (2018-03-16)回复
  17. #0
    Annie

    完美的解决了问题,感谢料神

    5年前 (2017-12-19)回复
  18. #0

    Sam,你好。按照教程配置后,WP Mail SMTP by WPForms 测试正常。但是在网站表单里测试,显示发送成功,但是设置的邮箱里却没有收到任何邮件。请问是有可能是哪里出的问题?谢谢。

    5年前 (2017-12-13)回复
    • @michael 问题已解决,仔细又检查了几遍,发现是 Contact Form 7 收件人邮箱拼写错误导致收不到测试邮件。 多谢 Sam 详细的教程和提示“注意细节特别是 Contact Form 7 的 Mail 选项卡,可能写错一个标签或者写错位置就会出错。”

      5年前 (2017-12-13)回复
    • 继续革命

      @michael 该评论为私密评论

      4年前 (2018-03-11)回复
  19. #0

    你好,料神,照着你的设置一步步来的,我用的是 VPS,使用 WP Mail SMTP by WPForms 测试是可以的,但是在网站表单系统发送就显示失败“”Failed to send your message. Please try later or contact the administrator by another method.“更换接收邮箱也没有变化。

    5年前 (2017-10-11)回复
    • @ryan 试出来了,contact from 7 里设置的收件邮箱不能用同网域的,不知道是怎么回事。改成 QQ 邮箱,或 gmail 就都没有问题了,但是这样,询盘不是直接到自己的公司邮箱里,有点不舒服,不知道还有没有解决方法。

      5年前 (2017-10-12)回复
  20. #0

    你好,料神,为什么在 Additional Headers 出现 Invalid mailbox syntax is used in the Reply-To field,然后我就直接删了内容,不填。 我注册的是免费的 QQ 企业邮箱,收发邮箱都是用的是同一个域名的。配置也是按照教程里边做的。可是最后还是不成功! 测试发送邮件失败。不知道是哪里出问题了。可否麻烦料神帮忙分析一下是什么问题?

    5年前 (2017-09-27)回复
    • @Elvira 我也是会出现 Additional Headers 出现 Invalid mailbox syntax is used in the Reply-To field。删了内容不填测试发送页面直接加载不出来了。 亲,你的问题解决了吗?

      5年前 (2017-11-13)回复
      • kit2hang

        @tina 解决了吗?同遇到这个问题

        4年前 (2018-03-16)回复
  21. #0

    料神,我这边还是接收不了邮件,请指点,谢谢。

    5年前 (2017-09-20)回复
  22. #0

    该评论为私密评论

    5年前 (2017-09-14)回复
  23. #0
    yuki

    料大,QQ 的免费企业邮箱可以用吗

    5年前 (2017-09-07)回复
  24. #0
    lee

    你好,料神,为什么在 Additional Headers 出现 Invalid mailbox syntax is used in the Reply-To field 的错误了,请解答,谢谢

    5年前 (2017-09-06)回复
    • Richard

      @lee Lee,我的问题跟你出现的一样,还没有解决 在 Additional Headers 出现 Invalid mailbox syntax is used in the Reply-To field 的错误了, 出现红框

      5年前 (2017-09-10)回复
  25. #0
    Mandy

    想看料神写 postfix 的安装配置教程

    5年前 (2017-09-03)回复
  26. #0
    Lina

    sam,您好!假设我的域名是:www.abc.com。我在设置中转邮箱的时候,WORDPRESS 中的 CONTACT FORM7 中的 MAIL 的 FROM 的设置只能设置这个域名的来进行中转。如果设置其他的邮箱就出现如下的错误: Sender email address does not belong to the site domain. 请问是怎么回事呢?谢谢!

    5年前 (2017-09-03)回复
    • 浙江万凯

      @Lina contact form 7 的要求,必须同域名企业邮箱。所以没企业邮箱,又整个 linode VPS 就相当坑。当时 Bluehost 支持 mail 函数就不要紧

      5年前 (2017-09-12)回复
  27. #0

    该评论为私密评论

    5年前 (2017-09-03)回复
  28. #0

    料神老师,我是您的米课学员,请问一下 POSTFIX 这个怎么使用,能不能出一个教程呢

    5年前 (2017-08-26)回复
  29. #0
    Fish123

    用 IFTTT 吧,有邮件到达会第一时间通知你,用了三年多了,屡试不爽~请叫我雷锋

    5年前 (2017-03-22)回复
    • terry

      @Fish123 具体咋个使用法呀

      5年前 (2017-03-29)回复
  30. #0
    kevin_安徒生

    如果你要是早点写这篇文章,我就不会被领导骂了=。=

    5年前 (2017-03-14)回复
  31. #0

    昨天在 VPS 上装了一个 POSTFIX,速度快多了,发询盘 1S 发送完成

    5年前 (2017-03-09)回复
    • 料神Sam
      Liaosam,外贸综合症患者。
      @hunk 现在料网上发送留言邮件就是 postfix。smtp 永久了确实速度有点慢。
      5年前 (2017-03-09)回复
  32. #0

    用 SMTP 发送询盘感觉好慢,我测试至少需要 10S 才能发送成功

    5年前 (2017-03-09)回复
    • 料神Sam
      Liaosam,外贸综合症患者。
      @hunk 你可以用 25 端口,SSL 端口要安全验证,速度要慢一些。不过整体来看 SMTP 确实会慢一些,但我没碰到要 10S 那么慢的。主要看你选的中转邮箱跟你的网站虚拟主机或者 VPS 的线路位置是近还是远了。如果你网站是美国机房,那么腾讯企业邮箱的海外 SMTP 服务器(hwsmtp.exmail.qq.com)发邮件的处理速度就更快一些。
      5年前 (2017-03-09)回复
      • @Liaosam 我是景安的主机,用的 126 邮箱非 ssl 口,确实需要那么久

        5年前 (2017-03-09)回复
  33. #0

    难怪我现在好久都没有收到你的回复邮件了,另外可以用以下代码,可以节省一个插件哦 :lol: 至于放哪里你是肯定知道的哦! :smile: //使用 smtp 发送邮件(请根据自己使用的邮箱设置 SMTP) add_action(‘phpmailer_init’, ‘mail_smtp’); function mail_smtp( $phpmailer ) { $phpmailer->FromName = ‘常阳时光’; //发件人名称 $phpmailer->Host = ‘smtp.qq.com’; //修改为你使用的邮箱 SMTP 服务器 $phpmailer->Port = 465; //SMTP 端口 $phpmailer->Username = ‘123@qq.com’; //邮箱账户 $phpmailer->Password = ‘123123123’; //邮箱密码 $phpmailer->From = ‘123@qq.com’; //邮箱账户 $phpmailer->SMTPAuth = true; $phpmailer->SMTPSecure = ‘ssl’; //tls or ssl (port=25 时->留空,465 时->ssl) $phpmailer->IsSMTP(); }

    5年前 (2017-03-08)回复
    • 料神Sam
      Liaosam,外贸综合症患者。
      @aunsen 这样也行,省个插件。不过外贸人不怎么喜欢折腾代码的。 对了,你要是收不到我的回复邮件,可能是被你 qq 邮箱拦截了,把我域名加入白名单就行了。
      5年前 (2017-03-09)回复
    • Lina

      @aunsen 请问这个代码是放到哪个位置呢

      5年前 (2017-09-03)回复
  34. #0
    brooks

    Sam 哥, 如果使用的是公共邮箱,例如:126 的该怎么操作?

    5年前 (2017-03-08)回复
    • 料神Sam
      Liaosam,外贸综合症患者。
      @brooks 怎么就不会举一反三呢?WP SMTP 设置里填写 126 的 smtp 服务器信息和你的 126 邮箱账号密码即可。
      5年前 (2017-03-09)回复
      • Brooks

        @Liaosam 好的,谢谢 SAM 哥,我试试

        5年前 (2017-03-15)回复
        • 浙江万凯

          @Brooks 公共邮箱 gmail 怎么试都不行的 :cry: ,有成功的同学吗?

          5年前 (2017-09-12)回复
  35. #0
    terry

    赞一个!依然很实用,很棒!之前怎么设置怎么不对,后来自己在 linode 上装 sendmail,问题来了: 网站第一版发送邮件没问题,后来网站出问题重装做第二版,邮件就收不到了(偶尔能有 1 2 封收到),一直很困扰,望 sam 指导 1 2。多谢!

    5年前 (2017-03-08)回复
    • 料神Sam
      Liaosam,外贸综合症患者。
      @terry 已在文中更新注意事项。请看第三部分。
      5年前 (2017-03-09)回复