- 3.5 Spring Boot邮件服务:从基础发送到模板邮件进阶
Sendingab
Springboot从入门到精通零基础7天精通SpringBootspringbootpython后端
SpringBoot邮件服务:从基础发送到模板邮件进阶引言在现代企业级应用中,邮件服务是不可或缺的基础能力。从用户注册验证、密码重置,到订单通知、系统告警,再到营销推广等场景,邮件始终扮演着关键角色。SpringBoot通过spring-boot-starter-mail模块,将JavaMail的复杂配置简化为几行代码即可实现的便捷操作。本文将手把手带您实现从基础文本邮件发送到高级模板邮件的完整开
- Django 发送email配置详解及各种错误类型
weixin_30496751
python
跟随DjangoBook的内容发送邮件不成功,总结一下需要配置好settings.py文件,还要注意一些细节。1、在settings文件最后添加以下内容,缺一不可!EMAIL_HOST='smtp.163.com'EMAIL_PORT=25EMAIL_HOST_USER='
[email protected]'(你有163邮箱的话)EMAIL_HOST_PASSWORD=‘xxxxxxx'EMAIL_US
- python第七章_python第七章:常用模块--小白博客
weixin_39722759
python第七章
yagmail模块python标准库中发送电子邮件的模块比较复杂,因此,有许多开原的库提供了更加易用的接口来发送电子邮件,其中yagmail是一个使用比较广泛的开原项目,yagmail底层依然使用了smtplib和email模块,但是yagmail提供了更好的接口,并具有更好的易读性yagmail是开原项目,因此,在使用前需要安装pipinstallyagmail用法:#连接邮箱服务器yag=ya
- Docker自动安装、启动、接入、结束ros-melodic-desktop-full的脚本
QxAIRobot
robotshell脚本dockerROSlinux机器人ubuntu
脚本#!/bin/bash#Ascripttostartros:melodic-desktop-fullindocker.#Youneedtoinstallthelatestdockerfirst.#Author:liuqixuan.cn#Email:
[email protected]#set-xRES_NAME=rosTAG=melodic-desktop-fullif[[-z`whichdoc
- 群体智能优化算法-澳洲野狗优化算法(含Matlab源代码)
HR Zhou
算法matlab开发语言群体智能优化优化
DingoOptimizationAlgorithm(DOA)sourcecodeDevelopedinMATLAB9.4.0.813654(R2018a)Author:Dr.HernanPeraza-VazquezMTA.GustavoEchavarria-Castilloe-mail:
[email protected]@alumno.ipn.mxProgrammer:
- github 上拉取,修改,增加分支及提交
AI_央木
githubgit
1.github中ssh配置1.1gitconfig--globaluser.name“你的名字”gitconfig--globaluser.email“你的邮箱”1.2生成id_rsa.pubssh-keygen-trsa-C"姓名/邮箱"1.3ssh配置将生成的id_rsa.pub中的内容拷贝到key中2.拉取项目gitclonegit@xxxx3.本地创建新分支gitcheckout-bxx
- GitLab使用教程(入门)
青妙山
版本控制GitLab
1、下载安装下载地址:https://git-scm.com/download/win2、配置信息1、查看git配置信息、用户名、邮箱gitconfig--listgitconfiguser.namegitconfiguser.email2、配置本地仓库的用户名和邮箱gitconfig--globaluser.name"YourName"gitconfig--globaluser.email"em
- 企微扫码登录
庸懒
企业微信
企微扫码登录企微的扫码登录官网有较为详细的文档扫码授权登录-文档-企业微信开发者中心(qq.com),对主要流程有详细说明且对部分代码有示例。扫码登录有两种方式,一种是跳转到扫码页面,一种是内嵌二维码,因为第二种接受度更高所以这里以第二个为例:1.引入资源首先需要在网页中引入企微的指定资源http://rescdn.qqmail.com/node/ww/wwopenmng/js/sso/wwLog
- Java突击小练习--利用正则表达式来简易的校验邮箱与手机号格式
CJH~
java正则表达式mysql
//校验邮箱publicclassTestEmail{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);//*号代表任意数量,放在0-9a-zA-Z后面,代表可以写任意数量的字母和数字//@是邮箱的符号,接在刚刚那串的后面//|代表或,也就是说@后可以跟着qq或163或sina中的任意字符串,代表哪家邮箱//
- 使用Lodash工具后代码行数瞬间缩短...
lodasharraylist
背景:最近在做报表.涉及到echarts图表.多层柱状图叠加展示.然后后端给出来的结构是二维数组.需要前端自行处理成图表可用的数据格式.echarts数据是是动态的.需求效果图的样子:echarts相似的官网案例代码:option={tooltip:{trigger:'axis',},legend:{data:['Direct','MailAd','AffiliateAd','VideoAd','
- [免费送Claude账号密码]ChatGPT的平替——Claude赠送2个免费Claude账号密码卡密!(内附Claude注册教程)
NBA首席形象大使阿坤
日常小功能实现人工智能chatgptclaudegpt-3
- 学习面向对象编程之前的准备工作(二)
笺上山河梦
C++学习c++算法开发语言
综述本次学习的所有知识点如下:/**C++struct使用*//**Filename:StructDemo.cpp*AuthorName:xxx*Date:2025.3.10*Email:xxxxxxxxxxxxxx*Function:DemonstrationtohowtousethestructureofC++.*/#include#includeusingnamespacestd;//结构体
- MySQL 的索引数量是否越多越好
Zero_pl
Mysql基础知识面试题mysql数据库
MySQL的索引并不是越多越好,索引数量需要根据查询需求合理设置。虽然索引可以提高查询效率,但过多的索引也会带来额外的开销,影响数据库的性能。✅索引的优点提高查询速度索引类似于书籍的目录,可以快速查找数据,减少查询时间。如SELECT*FROMusersWHEREemail='
[email protected]';,如果email字段有索引,MySQL可以直接找到匹配数据,否则需要全表扫描。加速排序(
- FLASK,ORM(mysql),12条查询练习语句
毛毛是一只狗
《Python专栏》flaskORM
ORM查询语句练习,创表数据在flask课件里,在我资源里可以下载查询所有用户数据查询有多少个用户查询第1个用户查询id为4的用户[3种方式]查询名字结尾字符为g的所有数据[开始/包含]查询名字不等于wang的所有数据[2种方式]查询名字和邮箱都以li开头的所有数据[2种方式]查询password是123456或者email以itheima.com结尾的所有数据查询id为[1,3,5,7,9]的用
- python flask sqlalchemy JSON 数据查询
Purple_Grape207
pythonflaskpython
classUser(db.Model):id=db.Column(db.Integer,primary_key=True)username=db.Column(db.String(80),unique=True,nullable=False)email=db.Column(db.String(120),unique=True,nullable=False)userInfos=db.Column(d
- Spring Boot 参数校验异常与错误编码映射方案
robin-cloud
springspringbootspringcloud
一、错误码定义与配置错误码结构采用分层编码格式:[模块][错误类型][序号](如1001表示公共模块参数校验错误中的第一个错误)配置文件(application.yml)yaml复制error:codes:#公共模块错误码common:param_invalid:1000#校验子错误码constraints:NotNull:1001Size:1002Pattern:1003Email:1004#用
- 【MySQL】表的约束
熙曦Sakura
MySQLmysqlandroidoracle
5.表的约束真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表的约束很多,这里主要介绍如下几个:null/notnull,default,comment,zerofill,primarykey,auto_increment,uniquekey。5.1空属性两个值:null(默认
- 什么是企业邮箱?在公司中企业邮箱有什么作用?
安全
在现代商业环境中,企业邮箱已经成为公司日常运营中不可或缺的工具。无论是初创企业还是大型跨国公司,企业邮箱都扮演着重要角色。那么,什么是企业邮箱?它与普通邮箱有什么区别?在公司中又能发挥哪些作用?本文将为您一一解答。一、什么是企业邮箱?企业邮箱,顾名思义,是专门为企业设计的电子邮件服务。与我们日常使用的个人邮箱(如Gmail、QQ邮箱)不同,企业邮箱通常以公司域名为后缀,例如:name@yourco
- 计算机网络之应用层(电子邮件)
DKPT
#计算机网络算法计算机网络网络学习笔记
一、电子邮件的基本概念电子邮件(ElectronicMail,简称E-mail)是一种用电子手段提供信息交换的通信方式,它通过互联网上的电子邮件系统,使用户能够以非常低廉的价格和非常快速的方式,与世界上任何一个角落的网络用户联系。这些电子邮件可以是文字、图像、声音等各种方式,同时用户还可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。二、电子邮件的起源与发展电子邮件的历史可以追溯到20世纪6
- GitLab配置添加SSH Key
小羊绒
配置sshreactjs
工具gitbash1.配置姓名,邮箱配置姓名$gitconfig--globaluser.name"rongyang"配置邮箱$gitconfig--globaluser.email"
[email protected]"2.客户端配置生成SSH密钥对$ssh-keygen-trsa-C"
[email protected]"完成后在~/.ssh/会生成2个文件。id_rsa和id_
- 【计算机网络】常见tcp/udp对应的应用层协议,端口
{⌐■_■}
计算机网络tcp/ipudp
TCP和UDP对应的常见应用层协议基于TCP的应用层协议协议全称用途默认端口HTTPHyperTextTransferProtocol超文本传输协议80HTTPSHTTPSecure加密的超文本传输协议443FTPFileTransferProtocol文件传输协议(20传输数据,21控制连接)20,21SMTPSimpleMailTransferProtocol发送邮件25POP3PostOff
- IMX6ULL - Linux根文件系统(rootfs)构建
树 哥
嵌入式Linuxlinuxarm
Author:zzssdd2E-mail:
[email protected]一、Ubuntu-base20.04.3Ubuntu官方已经制作好了各架构、各版本的base版根文件系统,只需下载下来做少许改动即可。下载UbuntuBase20.04.3LTS(FocalFossa)ubuntu-base-20.04.3-base-armhf.tar.gz2021-08-1910:5622M解压mk
- 接口自动化如何封装mysql操作
天才测试猿
mysqlpython软件测试测试工具测试用例自动化测试数据库
数据查询类封装1.功能分析可以连接不同sql数据库查一条数据,多条数据可以获取不同格式的数据2.封装成数据库查询类封装思路:数据库查询模块有多个功能,且需要复用,所以封装成类创建对象方法实现各种查询在构造方法中创建连接废话不多说,直接上代码!!!#-*-coding:utf-8-*-#@Time:2019/11/1314:51#@Author:kira#@Email:
[email protected]
- Python 阿里云服务器使用SMTP协议和25端口发送邮件报SMTPServerDisconnected(“Connection unexpectedly closed“)错误的解决办法
QMT量化交易
Pythonpython阿里云服务器
1.发送邮件函数:importsmtplibdefsend_mail(trade_date,receivers=None,subject='数据采集完成',content='数据采集完成'):mail_host="smtp.qq.com"mail_user="
[email protected]"mail_pass="XXXXXXXXXXXXXXX"sender='
[email protected]'receive
- HTML5的新属性
crary,记忆
前端知识总结html5前端html
pattern:用于指定输入字段的正则表达式模式。在提交表单前,输入将验证是否符合指定的模式。pattern属性是HTML5中用于表单验证的一个属性,它用于指定一个正则表达式,以验证输入字段中的值是否符合特定的模式。该属性通常与元素一起使用,并适用于text、password、email、search和tel等类型的输入字段。含义和用法:验证输入格式:pattern属性的值应该是一个有效的正则表达
- 常见的 Git 命令
山上春
gitelasticsearch大数据
基础配置和信息查询(SetupandInformation)gitconfig--globaluser.name“YourName”:配置全局用户名,用于Git提交记录。gitconfig--globaluser.email“
[email protected]”:配置全局用户邮箱,同样用于Git提交记录。gitconfig--list:列出当前的Git配置信息(包括全局、仓库级别等)。g
- git基础使用
张高伟
git
强烈建议所有的Git仓库都有一个README,LICENSE,.gitignore文件简易的命令行入门教程:Git全局设置:gitconfig--globaluser.name"滔哥"gitconfig--globaluser.email"
[email protected]"创建git仓库:gitinittouchREADME.mdgitaddREADME.mdgitcommit-m"firstcom
- linux发送邮件结合cron
热心市民运维小孙
linux运维linux运维服务器
Linux发送邮件结合cron定时任务配置邮件发送(以QQ邮箱为例,其他同理)一、获取qq邮箱授权码登录qq邮箱进行手机验证或者令牌啥的会获取到一个授权码二、使用mailx发邮件安装软件yum-yinstallmailx编辑配置文件vim/etc/mail.rc在文件末尾添加以下内容setbsdcompat//兼容bsd风格标准
[email protected]//你的qq邮箱se
- 20250306JIRA添加企业微信邮箱通知
小楼看风云
每天一个运维问题笔记
文章目录一,参考链接如下二,补充内容1,登录企业邮箱2,设置密码3,设置收发信设置一,参考链接如下参考链接:https://blog.csdn.net/icett/article/details/142520823二,补充内容1,登录企业邮箱https://exmail.qq.com/login2,设置密码设置---->帐户—>客户端密码:生成新密码3,设置收发信设置设置开启SMTP服务
- 【MySQL】表的约束
小wanga
MySQLmysqlandroidadb
文章目录表的约束什么是约束空属性表的约束什么是约束真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。在MySQL中,约束(Constraints)是指在创建表时规定的对表中数据进行限制的条件。它可以对表中某列或某几列添加一些限制条件,以保证表中的数据符合要求。MySQL中的约束包
- java观察者模式
3213213333332132
java设计模式游戏观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
- TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
- PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
- hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
- Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
- [简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
- 关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
- JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
- rome创建rss
antonyup_2006
tomcatcmsxmlstrutsOpera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
- html表格和表单基础
百合不是茶
html表格表单meta锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
- ibatis如何传入完整的sql语句
bijian1013
javasqlibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
- 精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle数据库plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
- 【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
- 优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
- angular.extend
boyitech
AngularJSangular.extendAngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
- java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
- ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUploadie6ie7ie8ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
- [机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
- Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
- 专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
- 小学6年级英语单词背诵第一课
dcj3sjt126com
englishword
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
- 在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
- Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验Struts2 xml校验框架Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
- mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
- 三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
- 年轻程序员需要学习的5大经验
lampcy
工作PHP程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
- 评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
- 使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jspinput回车键绑定clickenter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
- EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
- mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d