用telnet测试远程smtp发信

问题:如想简单测试远程smtp账户信息是否正确,能否发信,用telnet可以吗?

尝试:

telnet 148.163.x.x 25
Trying 148.163.x.x...
Connected to 148.163.x.x.
Escape character is '^]'.
220 mail.xxx.com ESMTP Postfix
EHLO mail.xxx.com # 打招呼
250-mail.xxx.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN # 请求验证
334 VXNlcm5hbWU6
bGl1b2ZvQHVwdXN0cm333333bQ== # base64加密后的用户名
334 UGFzc3dvcmQ6 
MXEydz44444Tg3 # base64加密后的密码
535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6 #验证错误
AUTH LOGIN
334 VXNlcm5hbWU6
bGl3333v
334 UGFzc3dvcmQ6
MXEydz44443
235 2.7.0 Authentication successful #验证成功
MAIL FROM:liuo@xxx.com # 发件人
250 2.1.0 Ok
RCPT TO:liu@anqun.net #收件人
250 2.1.5 Ok
DATA #开始写信
354 End data with <CR><LF>.<CR><LF>
Subject:Sending email using Telnet #标题

This is just a simple test.
. # 写信结束
250 2.0.0 Ok: queued as 4831E40AFD2B
QUIT #退出
221 2.0.0 Bye
Connection closed by foreign host.

telnet-smtp-auth-test.png

如想在Linux的Shell里一句话发信测试,可:echo "Subject: hello" | sendmail liu@anqun.net

参考:https://www.kongtechnology.com/2008/01/27/smtp-authentication-and-send-emails-using-telnet/

magento - php bin/magento setup:di:compile - 出错 - 删除 vendor/temando 目录后补回

现象:magento2一键包的文件,在执行 php bin/magento setup:di:compile 命令时出错,提示:PHP Fatal error: Declaration of Temando\Shipping\Model\ResourceModel\Carrier\Collection::fetchData() must be compatible with Temando\Shipping\Model\ResourceModel\Webservice\Collection...

尝试:

1.php bin/magento module:disable Temando_Shipping # 禁用该模块,重新执行setup:di:compile,还是一样错误

2.删除 vendor/temando 目录,然后用官方相同版本的文件复制回原路径

3.重新执行setup:di:compile,正常了

4.php bin/magento module:enable Temando_Shipping # 如需要,可重新启用该模块

参考:

magento - 在URL网址中不显示store view code - Url Options

问题:如果magento为不同的语言创建了不同的Store View,那么默认在浏览器访问的地址栏中,会显示该Store View的标识,如en4等。

magento-hide-store-code-2.png

方法:在管理后台,浏览 Stores -> Configuration --> General --> Web ---> URL options ----> Add Store Code to Urls 设置为 No
magento-hide-store-code-1.png

清除缓存后,再次测试。
magento-hide-store-code-3.png

参考:https://magento.stackexchange.com/questions/186083/magento-2-remove-store-code-in-url-only-for-default-store

magento - 搬站 - Symbolic link not allowed or link target not accessible - 403拒绝访问

问题:将magento2的web目录,从A服务器打包到B服务器。访问B服务器的magento2站点,部分图片不能显示,apache日志记录有403错误,如 AH00037: Symbolic link not allowed or link target not accessible: /var/www/magento2/pub/static/adminhtml/Magento/backend/en_US/images/magento-logo.svg

解决:删除magento的pub/static目录,然后重新生成静态目录里的文件。

1.php bin/magento setup:static-content:deploy -f
2.php bin/magento cache:flush

debian9-apache-magento-1.png

参考:https://magento.stackexchange.com/questions/64802/magento-2-404-error-for-scripts-and-css

关闭magento管理后台网址里的会话字符串

问题:magento默认是往管理后台URL网址中添加随机生成的长字符串Secret Key,可增强安全性。但如果有“洁癖”,也可以禁用。
magento-admin-secret-key-1.png

过程:

1.登录到后台,浏览到 Stores -> Settings -> Configuration -->Advanced --> Admin --> Security ,将 Add Secret Key to URLs 设置为 No
magento-admin-secret-key-2.png

2.清除magento缓存后,管理后台的URL网址中没有长长的字符串Secret Key了
magento-admin-secret-key-3.png

参考: