我正在尝试使用此函数测试应用程序从本地主机发出的电子邮件:
func SendContactUsForm(subject, email, body string) error {
var err error
from := "mysender@gmail.com"
pass := "somecrazypw"
to := "mydestination@gmail.com"
msg := "From: " + from + "\n" +
"To: " + to + "\n" +
"Subject: Contact form:" + subject + "\n" + body
err = smtp.SendMail("smtp.gmail.com:587",
smtp.PlainAuth("", from, pass, "smtp.gmail.com"),
from, []string{to}, []byte(msg))
if err != nil {
log.Printf("smtp error: %s", err)
return err
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
send_emails.go:171: smtp 错误: 535 5.7.8 不接受用户名和密码。了解更多信息,请访问 5.7.8 https://support.google.com/mail/?p=BadCredentials a7sm5381413wmh.14 …
我在 Debian 上使用独立数据库,并且我是 MariaDB 的新手。\n在 MySQL 中,我过去只处理一个my.cnf包含我需要的所有相关参数的数据库。
在 MariaDB 10 中,有数十个:
\n\n/etc/mysql# tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conf.d\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mysql.cnf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mysqldump.cnf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 debian.cnf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 debian-start\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mariadb.cnf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mariadb.conf.d\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 50-client.cnf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 50-mysql-clients.cnf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 50-mysqld_safe.cnf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 50-server.cnf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my.cnf -> /etc/alternatives/my.cnf\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my.cnf.fallback\nRun Code Online (Sandbox Code Playgroud)\n\n我需要修改max_connections、innodb_buffer_pool_size等参数long_query_time来注册慢速查询。我将它们添加到my.cnf但服务器拒绝重新启动。
所以我想知道我应该修改哪个文件?
\n将我的 Ubuntu 桌面从 16.04 升级到 18.04 后,django 的 virtualenv 拒绝启动:
(.djangoenv) mw@desktop:~/theapp$ python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 10, in <module>
from django.apps import apps
File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/apps/__init__.py", line 1, in <module>
from .config import AppConfig # NOQA
File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/apps/config.py", line 4, in <module>
from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured
File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/core/exceptions.py", line 5, in <module>
from django.utils.encoding import force_text
File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/utils/encoding.py", line 10, in <module>
from …Run Code Online (Sandbox Code Playgroud) 假设我有一段字符串,如:
fruits := {"apple", "orange", "banana"}
Run Code Online (Sandbox Code Playgroud)
和一张像
box:= map[string]int{
"chicken": 1,
"drinks": 4,
"apples": 42,
}
Run Code Online (Sandbox Code Playgroud)
什么是检查是否是最有效的方式box包含任何apple,orange还是banana?请注意,在这里我们追求的不完全一致,但一个关键CONTAINS某些字符串。所以简单的键搜索在这里不起作用。
我知道我可以从地图中提取键:
keys := make([]string)
for k := range box {
keys = append(keys, k)
}
Run Code Online (Sandbox Code Playgroud)
然后遍历两个切片以在键中搜索:
for _, f := range fruits {
for _, k in keys {
if strings.Contains(k, f) {
fmt.Println("Fruit found!")
}
}
Run Code Online (Sandbox Code Playgroud)
但这否定了使用 map 而不是 slice 进行字符串搜索的优势。那么有没有更好的方法呢?
go ×2
debian ×1
dictionary ×1
django ×1
email ×1
gmail ×1
mariadb ×1
python-2.7 ×1
string ×1
virtualenv ×1