HTML怎么发送邮件到QQ邮箱

急求 各位大神 帮忙解决 :HTML怎么发送邮件到QQ邮箱

8个回答

在Html中可以使用Ajax来发送

不建议将这种放在HTML里面,HTML是静态的,只能展示什么的。。一般都 是获取到邮件信息后,从后台的代码中发出。。比如ASP.net这种

再送1个asp.net发送email的例子 http://blog.csdn.net/chinacsharper/article/details/9750303

html form的action设置为mailto:收件人地址,提交后会自动调用默认客户端软件

http://blog.sina.com.cn/s/blog_5f0e13360100d2zs.html

https://support.microsoft.com/en-us/kb/279460/zh-tw

一般都是前端发送数据到服务器再通过服务器发送,前提是您设置的发送邮件的邮箱开通了pop/stmp端口应该是25
现在有一个是叫phpmail的东西可以实现简单配置就好了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c# 使用SmtpClient给QQ邮箱发送HTML邮件时,无法直接显示图片
使用以下代码发送包含图片的邮件时 , QQ邮箱无法直接显示, 而提示 这不是腾讯公司的官方邮件。为了保护邮箱安全,内容中的图片未被显示。如何识别腾讯系统邮件 显示图片 信任此发件人的图片 。 需点击“显示图片” 才能显示 EmailManager emailManager = new EmailManager(); Email email = new Email(); email.SenderAddress = "*******@163.com"; email.Subject = "test 主题"; email.IsbodyHtml = true; string pageHtml = "<img src='http://g.search.alicdn.com/img/bao/uploaded/i4/i2/16558028535799599/T1oaCoFf8aXXXXXXXX_!!0-item_pic.jpg_210x210.jpg'/>"; //邮件内容包含图片 email.Body = pageHtml; email.ToList.Add("*********@qq.com"); email.BodyEncoding = Encoding.UTF8; emailManager.login("smtp.gmail.com", 587, "******@gmail.com", "*******"); try { bool success = emailManager.sendEmail(email); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); //ViewBag.error = e.Message; }
javamail发送邮件,超链接无法访问
我用javamail发送html邮件给QQ邮箱,在html中我加入了<a>标签和连接。但是每次发送到那边,链接都无法点击是怎么回事?
java 用QQ邮箱发邮件问题
代码如下: ``` private static final String account = "xxx@qq.com"; private static final String password = "xxx"; private static final String host = "smtp.qq.com"; // private static final String account = "xxx@163.com"; // private static final String password = "xxx"; // private static final String host = "smtp.163.com"; public static void main(String[] args) { String content = "dfaferdfgfd"; Session session = getSession(); MimeMessage message = new MimeMessage(session); try { message.setSubject("找回您的帐户与密码"); message.setSentDate(new Date()); message.setFrom(new InternetAddress(account)); message.setRecipient(RecipientType.TO, new InternetAddress(to)); message.setContent(content,"text/html;charset=utf-8"); // 发送邮件 System.out.println("sendResetPasswordEmail:邮件发送-->"); Transport.send(message); } catch (Exception e) { e.printStackTrace(); } } public static Session getSession() { Security.getProviders(); Properties props = new Properties(); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.host", host); props.setProperty("mail.smtp.port", "25"); props.setProperty("mail.smtp.auth", "true"); // props.setProperty("mail.smtp.ssl.enable", "false"); // props.setProperty("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); // props.setProperty("mail.smtp.port","465"); // props.setProperty("mail.smtp.socketFactory.port","465"); Session session = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(account, password); } }); session.setDebug(true); return session; } ``` 使用163邮箱发送邮件正常,用QQ邮箱发送就报错了。报错如图,邮箱帐号密码是正确的 ![图片说明](https://img-ask.csdn.net/upload/201601/26/1453793343_110016.png)
phpmailer在线留言发送到指定邮箱
<?php include_once "class.phpmailer.php"; include_once "class.smtp.php"; //获取一个外部文件的内容 $mail=new PHPMailer(); $body="姓名:$_POST[name]<br/>电话:$_POST[tel]<br/>邮箱:$_POST[email]<br/>公司:$_POST[company]<br/>需求:$_POST[content];"; //设置smtp参数 $mail->IsSMTP(); $mail->SMTPAuth=true; $mail->SMTPKeepAlive=true; $mail->Host="smtp.163.com"; $mail->Port=25; //填写你的email账号和密码 $mail->Username="***@163.com"; $mail->Password="*****";#注意这里要填写授权码就是我在上面网易邮箱开启SMTP中提到的,不能填邮箱登录的密码哦。 //设置发送方,最好不要伪造地址 $mail->From="****@163.com"; $mail->FromName="***@163.com"; $mail->Subject="主题"; $mail->AltBody=$body; //$mail->WordWrap=50; // set word wrap $mail->MsgHTML($body); //设置回复地址 $mail->AddReplyTo("***@163.com","namell"); //添加附件,此处附件与脚本位于相同目录下否则填写完整路径 //附件的话我就注释掉了 #$mail->AddAttachment("attachment.jpg"); #$mail->AddAttachment("attachment.zip"); //设置邮件接收方的邮箱和姓名 $mail->AddAddress("***@qq.com","hello"); //使用HTML格式发送邮件 $mail->IsHTML(true); //通过Send方法发送邮件 //根据发送结果做相应处理 if(!$mail->Send()){ echo "Mailer Error:".$mail->ErrorInfo; }else{ echo "Message has been sent"; } ?> 本地测试是成功得的,上传服务器空间后就不行,出现请求超时问题。 请问如何解决?
jmail用QQ邮箱发送邮件失败,那里出了问题,请帮忙指正,谢谢
<% Subject =Request("Subject") who =Request("who") Company =Request("company") Address =Request("Address") mail =Request("mail") Telephone =Request("Telephone") Country =Request("Country") txt =Request("txt") userip =Request("userip") if who="" then response.write "<script language='javascript'>" & chr(13) response.write "alert('Sorry! You have no input Name!');" & Chr(13) response.write "history.go(-1);"&Chr(13) response.write "</script>" & Chr(13) Response.End end if userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR") Dim email,topic,mailbody email="aaa@aaa.com" ' topic=Subject &"" mailbody="Subject: "& Subject & "<br>Name:"& who & "<br>Company:"& company & "<br>Address:"& Address & "<br>E-mail:"& mail & "<br>Telephone:"& Telephone & "<br>Country:"& Country & "<br>Message:"& txt & "<br>userip:"& userip call Jmail(email,topic,mailbody) sub Jmail(email,topic,mailbody) Dim JMail,issend Set JMail=Server.CreateObject("JMail.Message") JMail.silent=true JMail.Logging=True JMail.Charset="gb2312" JMail.MailServerUserName = "bbb" JMail.MailServerPassword = "授权码" JMail.ContentType = "text/html" JMail.From="bbb@qq.com" JMail.FromName = who JMail.AddRecipient email JMail.Subject=topic JMail.Body=mailbody issend = JMail.Send ("smtp.qq.com") JMail.close Set JMail=nothing if issend = true then Response.Write "E-mail has been sent!" else Response.Write "E-mail failure" end if end sub %>
java代码0用163邮箱发送邮件时报这个错
com.sun.mail.smtp.SMTPSendFailedException: 553 authentication is required,163 smtp14,EsCowEBZ50rSm3JWmXF+AA--.3541S2 1450351570 java代码: public class EmailTools { public static boolean send(String to,String subject,String content){ Properties props = new Properties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.host","smtp.163.com"); props.put("mail.from", "15234874536@163.com"); props.put("mail.smtp.anth", true); Session session = Session.getDefaultInstance(props); session.setDebug(true); try { Transport transport = session.getTransport(); // 连接邮件服务器,链接您的163、sina邮箱,用户名(不带@163.com,登录邮箱的邮箱账号,不是邮箱地址)、密码 transport.connect("15234874536","*************"); MimeMessage message = new MimeMessage(session); message.setSubject(subject); message.setContent(content,"text/html;charset=utf-8"); message.setSentDate(new Date()); transport.sendMessage(message, InternetAddress.parse(to)); return true; } catch (NoSuchProviderException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } public static void main(String[] args) { // TODO Auto-generated method stub EmailTools email = new EmailTools(); email.send("2747917518@qq.com","Hello World!", "你好你好你好你好你好"); } }
SSM框架发送邮件的问题!
最近做项目SSM框架需要用发送邮件,以前没写过发送邮件,谁有这方面的思路 或者例子不吝赐教,我的需求是从数据库找到该条数据,然后往该注册邮箱里面发送该条数据,下面是度娘出来的东西,不知道用啥,直接跑java application能直接运行 到你所指定的邮箱,我数据库的值能抓出来然后不知道怎么往里面放了,不知道怎么写了,求大神指教一二 package me.reg.util; import java.util.Date; import java.util.Properties; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class MailUtil { public static String myEmailAccount = "test1@lb.com"; public static String myEmailPassword = "123456"; // 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com // 网易163邮箱的 SMTP 服务器地址为: smtp.163.com public static String myEmailSMTPHost = "127.0.0.1"; // 收件人邮箱(替换为自己知道的有效邮箱) public static String receiveMailAccount = "test2@lb.com"; public static void sendTo(String body, String receiveMailAccount) throws Exception { //只需要传入正文和目标地址即可 Properties props = new Properties(); // 参数配置 props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求) props.setProperty("mail.smtp.host", myEmailSMTPHost); // 发件人的邮箱的 SMTP // 服务器地址 props.setProperty("mail.smtp.auth", "true"); // 需要请求认证 // PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启), // 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误, // 打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。 /* * // SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接, // * 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助, // QQ邮箱的SMTP(SLL)端口为465或587, * 其他邮箱自行去查看) final String smtpPort = "465"; * props.setProperty("mail.smtp.port", smtpPort); * props.setProperty("mail.smtp.socketFactory.class", * "javax.net.ssl.SSLSocketFactory"); * props.setProperty("mail.smtp.socketFactory.fallback", "false"); * props.setProperty("mail.smtp.socketFactory.port", smtpPort); */ // 2. 根据配置创建会话对象, 用于和邮件服务器交互 Session session = Session.getDefaultInstance(props); session.setDebug(false); // 设置为debug模式, 可以查看详细的发送 log // 4. 根据 Session 获取邮件传输对象 Transport transport = session.getTransport(); // 3. 创建一封邮件 MimeMessage message = createMimeMessage(session, myEmailAccount, receiveMailAccount, body); // 4. 根据 Session 获取邮件传输对象 transport = session.getTransport(); // 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错 // // PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log, // 仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误 // 类型到对应邮件服务器的帮助网站上查看具体失败原因。 // // PS_02: 连接失败的原因通常为以下几点, 仔细检查代码: // (1) 邮箱没有开启 SMTP 服务; // (2) 邮箱密码错误, 例如某些邮箱开启了独立密码; // (3) 邮箱服务器要求必须要使用 SSL 安全连接; // (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务; // (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。 // // PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。 transport.connect(myEmailAccount, myEmailPassword); // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() // 获取到的是在创建邮件对象时添加的所有收件人, // 抄送人, 密送人 transport.sendMessage(message, message.getAllRecipients()); // 7. 关闭连接 transport.close(); } public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail, String body) throws Exception { // 1. 创建一封邮件 MimeMessage message = new MimeMessage(session); // 2. From: 发件人 message.setFrom(new InternetAddress(sendMail, "LB", "UTF-8")); // 3. To: 收件人(可以增加多个收件人、抄送、密送) message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "XX用户", "UTF-8")); // 4. Subject: 邮件主题 message.setSubject("激活您的帐号", "UTF-8"); // 5. Content: 邮件正文(可以使用html标签) message.setContent(body, "text/html;charset=UTF-8"); // 6. 设置发件时间 message.setSentDate(new Date()); // 7. 保存设置 message.saveChanges(); return message; } }
django 在生产环境下,不能发送错误报告邮件
我的架构是 Nginx+supervisord+gunicorn+django1.11 我在视图中手动抛出一个异常 ```python def mytestfn(request): a=3/0 print(a) return HttpResponse("it's ok") ``` 在本地环境下,当访问这个视图的时候会报错并发送邮件到邮箱提醒,但在生产环境下报502错误,但没有发送错误报告邮件。 我的邮箱发送配置: settings.py ```python ADMINS = MANAGERS = ( ('abc','xxxxxxxxxxx@qq.com'), ) EMAIL_HOST= 'smtp.qq.com'#QQ邮箱SMTP服务器(邮箱需要开通SMTP服务) EMAIL_PORT= 25 #QQ邮箱SMTP服务端口 EMAIL_HOST_USER = 'xxxxxxxxxx@qq.com' #我的邮箱帐号 EMAIL_HOST_PASSWORD = 'xxxxxxxxxx' #授权码 EMAIL_SUBJECT_PREFIX = 'website' #为邮件标题的前缀,默认是'[django]' DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER LOGGING={ 'version':1, 'disable_existing_loggers':False, 'formatters':{ 'default':{ 'format':'%(levelname)s%(asctime)s%(module)s:' '%(funcName)s:%(lineno)d%(message)s' } }, 'handlers': { 'console':{ 'level':'INFO', 'class':'logging.StreamHandler', 'formatter':'default' }, 'file': { 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '/tmp/logs/project.log', 'maxBytes': 1024 * 1024, 'backupCount': 5 }, 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, }, }, 'loggers':{ '':{ 'handlers':['console'], 'level':'INFO', 'propagate':True }, 'django.request': { 'handlers': ['console', 'mail_admins'], 'propagate': True, 'level': 'ERROR', }, }, } ``` 在项目中的日志也记录下了这个错误 ![图片说明](https://img-ask.csdn.net/upload/201906/30/1561907102_482346.png) 想请教各位大神是个什么情况,为啥本地能正常发送错误报告但部署到生产环境就发送不了
asp.net注册成功发送邮件带激活码
1)注册成功发送邮件。 前台代码 <form id="form1" runat="server"> <div> <table id="TABLE1" runat="server" border="0" cellpadding="0" cellspacing="0"> <tr> <td style="width: 393px"> 收信:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> 主题:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /> 内容:<asp:TextBox ID="TextBox3" runat="server" Height="154px" TextMode="MultiLine" Width="336px"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click" /> <br /> </td> </tr> </table> </div> <table id="Table2" runat="server" border="0" cellpadding="0" cellspacing="0" visible="false"> <tr> <td align="center" style="width: 400px"> <asp:Label ID="Label1" runat="server" ForeColor="Red" Text="恭喜您,发表成功!"></asp:Label><br /> <br /> <asp:Button ID="Button2" runat="server" Text="返回" onclick="Button2_Click" /> </td> </tr> </table> </form> 后台代码 protected void Button1_Click(object sender, EventArgs e) { ////设置发件人信箱,及显示名字 , MailAddress from = new MailAddress("邮箱"); //设置收件人信箱,及显示名字 , "0503班" MailAddress to = new MailAddress(TextBox1.Text); //创建一个MailMessage对象 MailMessage oMail = new MailMessage(from, to); oMail.Subject = TextBox2.Text; //邮件标题 oMail.Body = TextBox3.Text; //邮件内容 oMail.IsBodyHtml = true; //指定邮件格式,支持HTML格式 oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件采用的编码 oMail.Priority = MailPriority.High;//设置邮件的优先级为高 //发送邮件服务器 SmtpClient client = new SmtpClient(); client.Port = 25; client.Host = "stmp.163.com"; //指定邮件服务器 client.Credentials = new NetworkCredential("邮箱", "密码");//指定服务器邮件,及密码 //发送 try { client.Send(oMail); //发送邮件 Label1.Text = "恭喜你!邮件发送成功。"; } catch { Label1.Text = "邮件发送失败,检查网络及信箱是否可用。"; } oMail.Dispose(); //释放资源 TABLE1.Visible = false; Table2.Visible = true; } protected void Button2_Click(object sender, EventArgs e) { //返回,继续发送 Response.Redirect(Request.Url.ToString()); TABLE1.Visible = true; Table2.Visible = false; } 怎么也发送不成功。 2)像qq空间访问量左上角的数字怎么做出来
腾讯企业邮箱+php+jmail发信?
在用php+jmail时突然异想天开,于是便注册了一个腾讯企业邮箱,之后想用企业邮箱发信息的时候就出问题了 # 代码段 ``` <?php $jmail=new COM("JMail.Message")or die("无法调用Jmail组件"); //屏蔽例外错误,静默处理 $jmail->silent=false; //编码必须设置,否则中文会乱码 $jmail->charset='UTF-8';//可以试一下utf8或UTF8 //设置邮件格式为html格式 $jmail->ContentType ='text/html'; $jmail->From='*************';//非自定义邮箱账号 $jmail->FromName='*******'; //添加邮件接受者 $jmail->AddRecipient('*****************'); //邮件主题和正文信息 $jmail->Subject='PHP+Jmail测试邮件'; $jmail->Body='PHP+Jmail测试邮件正文'; //发信邮件账号和密码 $jmail->MailServerUserName='**********************'; $jmail->MailServerPassword='****************';//授权码 try { $retval=$jmail->Send('ssl://smtp.exmail.qq.com'); if($retval) { echo '发送成功'; } else { echo '发送失败'; } } catch(Exception $e) { echo $e->GetMessage(); } $jmail->Close(); ?> ``` 因为一直发不出去,于是我把静默处理改为了false,于是就变成这样了 Source: jmail.Message Description: The message was undeliverable. All servers failed to receive the message 是我的代码有问题么?如果有更优化的代码能分享一下吗?
java邮箱验证出错,可以帮我看看吗?
public static void main(String[]args){ //MailUtils.sendMail("853739173@shop.com", "111111"); MailUtils.sendMailIter("15113500327@163.com", "11111"); } /** * 发送邮件的方法 * * @param to * 目标邮箱 * @param code * 激活码 */ public static void sendMailIter(String to, String code) { /* * 1.获得一个session对象 2.创建一个代表邮件的对象Message 3.发送邮件Transport */ final String smtpHostName = "smtp." + to.split("@")[1]; //1.获得连接对象 System.out.println(smtpHostName); Properties properties = new Properties(); properties.setProperty("mail.smtp.host", smtpHostName); properties.setProperty("mail.smtp.auth", "true"); Session session = Session.getInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("q853739173@sina.com", "zxglovezz"); } }); //2.创建邮件对象 Message message=new MimeMessage(session); //设置发件人: try { message.setFrom(new InternetAddress("q853739173@sina.com")); //设置收件人 message.addRecipient(RecipientType.TO, new InternetAddress(to)); //抄送CC 密送BCC //设置标题 message.setSubject("shop官方激活邮件"); //设置邮件正文: //message.setContent("<h3>shop官方激活邮件!点下面链接完成激活操作!</h3><a href='http://192.168.16.215:8989/shop1/user_active.action?code="+code+"'>http://192.168.16.215:8989/shop1/user_active.action?code="+code+"</a>", "text/html;charset=UTF-8"); message.setContent("123456","text/html;charset=utf-8"); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } //3.发送邮件: try { Transport.send(message); } catch (MessagingException e) { e.printStackTrace(); } } 只有目标邮箱是新浪邮箱才可以接收到, 如果目标邮箱是163邮箱显示错误:535 Error: authentication failed 如果目标邮箱是qq邮箱显示错误:535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 如果只能是新浪邮箱那这个程序不是弱爆了吗?求教,悬赏悬赏!!!
python获取邮箱的内容后,怎么取到里面的验证码
# 连接到POP3服务器: server = poplib.POP3(pop3_server) # 可以打开或关闭调试信息: # server.set_debuglevel(1) # 可选:打印POP3服务器的欢迎文字: print(server.getwelcome().decode('utf-8')) # 身份认证: server.user(email) server.pass_(password) # stat()返回邮件数量和占用空间: print('Messages: %s. Size: %s' % server.stat()) # list()返回所有邮件的编号: resp, mails, octets = server.list() # 可以查看返回的列表类似[b'1 82923', b'2 2184', ...] # print(mails) # 获取最新一封邮件, 注意索引号从1开始: index = len(mails) resp, lines, octets = server.retr(index) # lines存储了邮件的原始文本的每一行, # 可以获得整个邮件的原始文本: msg_content = b'\r\n'.join(lines).decode('utf-8') # 稍后解析出邮件: msg = Parser().parsestr(msg_content) print_info(msg) ![图片说明](https://img-ask.csdn.net/upload/201912/05/1575552952_417417.png) 全部源码如下: # -*- coding: utf-8 -*- from email.parser import Parser from email.header import decode_header from email.utils import parseaddr import poplib import requests import json import re # 输入邮件地址, 口令和POP3服务器地址: email = "123456789@qq.com" password = "abcdefg" pop3_server = "pop.qq.com" # 文本邮件的内容也是str,还需要检测编码,否则,非UTF-8编码的邮件都无法正常显示 def guess_charset(msg): charset = msg.get_charset() if charset is None: content_type = msg.get('Content-Type', '').lower() pos = content_type.find('charset=') if pos >= 0: charset = content_type[pos + 8:].strip() return charset def decode_str(s): # decode_header()返回一个list 偷懒,只取了第一个元素 value, charset = decode_header(s)[0] if charset: value = value.decode(charset) return value def print_info(msg, indent=0): if indent == 0: for header in ['From', 'To', 'Subject']: value = msg.get(header, '') if value: if header=='Subject': value = decode_str(value) else: hdr, addr = parseaddr(value) name = decode_str(hdr) value = u'%s <%s>' % (name, addr) print('%s%s: %s' % (' ' * indent, header, value)) if (msg.is_multipart()): parts = msg.get_payload() for n, part in enumerate(parts): print('%spart %s' % (' ' * indent, n)) print('%s--------------------' % (' ' * indent)) print_info(part, indent + 1) else: content_type = msg.get_content_type() if content_type=='text/plain' or content_type=='text/html': content = msg.get_payload(decode=True) charset = guess_charset(msg) if charset: content = content.decode(charset) print('%sText: %s' % (' ' * indent, content + '...')) else: print('%sAttachment: %s' % (' ' * indent, content_type)) # 连接到POP3服务器: server = poplib.POP3(pop3_server) # 可以打开或关闭调试信息: # server.set_debuglevel(1) # 可选:打印POP3服务器的欢迎文字: print(server.getwelcome().decode('utf-8')) # 身份认证: server.user(email) server.pass_(password) # stat()返回邮件数量和占用空间: print('Messages: %s. Size: %s' % server.stat()) # list()返回所有邮件的编号: resp, mails, octets = server.list() # 可以查看返回的列表类似[b'1 82923', b'2 2184', ...] # print(mails) # 获取最新一封邮件, 注意索引号从1开始: index = len(mails) resp, lines, octets = server.retr(index) # lines存储了邮件的原始文本的每一行, # 可以获得整个邮件的原始文本: msg_content = b'\r\n'.join(lines).decode('utf-8')\ # 稍后解析出邮件: msg = Parser().parsestr(msg_content) print_info(msg)
Java,163邮箱发送失败问题;com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smt
Java实现 邮箱发送,163邮箱在发送过程中出现间接性发送失败问题; 错误信息: **邮件发送失败!com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp5,D9GowADn0DpklIBclT7UBw--.45S2 1551930470,please see http://mail.163.com/help/help_spam_16.htm?ip=61.178.126.61&hostid=smtp5&time=1551930470**; 已尝试网上的解决办法(在发送邮件之前向自己抄送一份),邮箱设置中也设置了白名单(无效果); 下面是实现代码: ``` package com.dfec.obp.util; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; public class MailUtil { ``` private MimeMessage mimeMsg; // MIME邮件对象 private Session session; // 邮件会话对象 private Properties props; // 系统属性 private boolean needAuth = false; // smtp是否需要认证 // smtp认证用户名和密码 private String username; private String password; private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 /** * Constructor * * @param smtp * 邮件发送服务器 */ public MailUtil(String smtp){ setSmtpHost(smtp); createMimeMessage(); } /** * 设置邮件发送服务器 * * @param hostName * String */ public void setSmtpHost(String hostName) { // System.out.println("设置系统属性:mail.smtp.host = "+hostName); if(props == null) props = System.getProperties(); // 获得系统属性对象 props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.put("mail.smtp.host", hostName); // 设置SMTP主机 props.setProperty("mail.smtp.port", "465");//qq设置465///25 } /** * 创建MIME邮件对象 * * @return */ public boolean createMimeMessage() { try { // System.out.println("准备获取邮件会话对象!"); session = Session.getDefaultInstance(props, null); // 获得邮件会话对象 session.setDebug(true); } catch(Exception e){ System.err.println("获取邮件会话对象时发生错误!" + e); return false; } // System.out.println("准备创建MIME邮件对象!"); try { mimeMsg = new MimeMessage(session); // 创建MIME邮件对象 mp = new MimeMultipart(); return true; } catch(Exception e){ System.err.println("创建MIME邮件对象失败!" + e); return false; } } /** * 设置SMTP是否需要验证 * * @param need */ public void setNeedAuth(boolean need) { // System.out.println("设置smtp身份认证:mail.smtp.auth = "+need); if(props == null) props = System.getProperties(); if(need){ props.put("mail.smtp.auth","true"); }else{ props.put("mail.smtp.auth","false"); } } /** * 设置用户名和密码 * * @param name * @param pass */ public void setNamePass(String name,String pass) { username = name; password = pass; } /** * 设置邮件主题 * * @param mailSubject * @return */ public boolean setSubject(String mailSubject) { // System.out.println("设置邮件主题!"); try{ mimeMsg.setSubject(mailSubject); return true; } catch(Exception e) { System.err.println("设置邮件主题发生错误!"); return false; } } /** * 设置邮件正文 * * @param mailBody * String */ public boolean setBody(String mailBody) { try{ BodyPart bp = new MimeBodyPart(); bp.setContent(""+mailBody,"text/html;charset=GBK"); mp.addBodyPart(bp); return true; } catch(Exception e){ System.err.println("设置邮件正文时发生错误!" + e); return false; } } /** * 添加附件 * * @param filename * String */ public boolean addFileAffix(String filename) { // System.out.println("增加邮件附件:"+filename); try{ BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename); bp.setDataHandler(new DataHandler(fileds)); bp.setFileName(MimeUtility.encodeText(fileds.getName())); mp.addBodyPart(bp); return true; } catch(Exception e){ System.err.println("增加邮件附件:" + filename + "发生错误!" + e); return false; } } /** * 设置发信人 * * @param from * String */ public boolean setFrom(String from) { // System.out.println("设置发信人!"); try{ mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人 return true; } catch(Exception e) { return false; } } /** * 设置收信人 * * 设置属性 * private Properties p; // p是属性集合类,用来设置邮件的一些属性比如timeout等 * p.put("userName","xxx@163.com"); //这里填上你的邮箱(发送方) * 构件MimeMessage 对象,并设置在发送给收信人之前给自己(发送方)抄送一份 * MimeMessage msg = mailSender.createMimeMessage(); * msg.addRecipients(MimeMessage.RecipientType.CC, InternetAddress.parse(p.getProperty("userName"))); * * @param to * String */ public boolean setTo(String[] to,String from){ if(to == null)return false; try{ mimeMsg.addRecipients(Message.RecipientType.CC,InternetAddress.parse(from));//给自己抄送一份 int mailSize = to.length; for(int i = 0; i < mailSize; i++){ InternetAddress toStr = new InternetAddress(to[i]); mimeMsg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(toStr.toString())); } return true; } catch(Exception e) { return false; } } /** * 发送邮件 */ public boolean sendOut() { try{ mimeMsg.setContent(mp); mimeMsg.saveChanges(); // System.out.println("正在发送邮件...."); Session mailSession = Session.getInstance(props,null); Transport transport = mailSession.getTransport("smtp"); transport.connect((String)props.get("mail.smtp.host"),username,password); transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients()); //transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO)); System.out.println("发送邮件成功!"); transport.close(); return true; } catch(Exception e) { System.err.println("邮件发送失败!" + e); return false; } } /** * 调用sendOut方法完成邮件发送 * * @param smtp * @param from * @param to * @param subject * @param content * @param username * @param password * @return boolean */ public static boolean send(String smtp,String from,String[] to,String subject,String content,String username,String password) { MailUtil theMail = new MailUtil(smtp); theMail.setNeedAuth(true); // 需要验证 if(!theMail.setSubject(subject)) return false; if(!theMail.setBody(content)) return false; if(!theMail.setTo(to,from)) return false; if(!theMail.setFrom(from)) return false; theMail.setNamePass(username,password); if(!theMail.sendOut()) return false; return true; } /** * 调用sendOut方法完成邮件发送,带附件 * * @param smtp * @param from * @param to * @param subject * @param content * @param username * @param password * @param filename * 附件路径 * @return */ public static boolean send(String smtp,String from,String[] to,String subject,String content,String username,String password,String filename) { MailUtil theMail = new MailUtil(smtp); theMail.setNeedAuth(true); // 需要验证 if(!theMail.setSubject(subject)) return false; if(!theMail.setBody(content)) return false; if(!theMail.addFileAffix(filename)) return false; if(!theMail.setTo(to,from)) return false; if(!theMail.setFrom(from)) return false; theMail.setNamePass(username,password); if(!theMail.sendOut()) return false; return true; } }
javax.mail.AuthenticationFailedException: 异常
javax.mail.AuthenticationFailedException: 220 Ready to start TLS ,在windows上正常,部署到linux上异常 ``` String contest = "欢迎注册商城!"; // 发送邮件通知 // 创建Properties 类用于记录邮箱的一些属性 final Properties props = new Properties(); // 表示SMTP发送邮件,必须进行身份验证 props.put("mail.smtp.auth", "true"); //此处填写SMTP服务器 props.put("mail.smtp.host", "14.18.245.164"); //端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587 props.put("mail.smtp.port", "587"); // 此处填写你的账号 props.put("mail.user", "1111111111@qq.com"); // 此处的密码就是前面说的16位STMP口令 props.put("mail.password", "qdasdqwdasd"); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 InternetAddress form = new InternetAddress( props.getProperty("mail.user")); message.setFrom(form); // 设置收件人的邮箱 InternetAddress to = new InternetAddress(user.getEmail()); message.setRecipient(RecipientType.TO, to); // 设置邮件标题 message.setSubject("欢迎注册商城"); // 设置邮件的内容体 message.setContent(contest, "text/html;charset=UTF-8"); // 发送邮件 Transport.send(message); ```
求助大神 phpPHPMailer 邮箱发送失败原因?
``` ``` $mail = new \PHPMailer(); //实例化 $mail->IsSMTP(); $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码 $mail->SMTPAuth = true; //开启认证 $mail->Port = 25; $mail->Host = "smtp.163.com"; $mail->Username = "luhaoand@163.com"; $mail->Password = "123456lh"; //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示 $mail->AddReplyTo("luhaoand@163.com","mckee");//回复地址 $mail->From = "luhaoand@163.com"; $mail->FromName = "www.phpddt.com"; $to = "460604387@qq.com"; $mail->AddAddress($to); $mail->Subject = "phpmailer测试标题"; $mail->Body = "m</font>)对phpmailer的测试内容"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略 $mail->WordWrap = 80; // 设置每行字符串的长度 //$mail->AddAttachment("f:/test.png"); //可以添加附件 $mail->IsHTML(true); $mail->Send(); dump($mail); echo '邮件已发送'; ``` ``` 一直发送失败 ![图片说明](https://img-ask.csdn.net/upload/201703/28/1490691303_742421.png)
收到表白邮件,但对方邮箱地址不存在,无法回复
这是邮件原文 Received: from smail25.cn4e.com (unknown [218.85.138.25]) by newmx38.qq.com (NewMx) with SMTP id for <799144857@qq.com>; Wed, 20 Mar 2019 20:43:35 +0800 X-QQ-FEAT: wHMHE0yn6Z/hwk5/73i41iuJ5+r8TrY10fIuhqVlWrqfCH0O1rZTWdmBHn4XU R9BGTsf3LRDvT8r+lmPpZ+A5i4/o7TPqVewBIuOLE/k8xenmUD7lIiRR8m6ybLxYToTm39s VrriObQ2U5BDGgmKI64wkvN6uspw5YXah/3fBPodrgSmXMVPAkIK9uXOpjhUxl1VCTdmIKj yVdlM4VaRD2f737JbrUAn7fL59xWx8jCsqUNe5ULyzhpOQKsDQYkody4TX9G9i25ShQjS1c 5TW6z4ZWWy+FA2PzUS00TstfkErVMavd/SSveqg9vOjQ0vgegqww8XJRmsdPdHVg4SlhvHm Aur+XEx X-QQ-MAILINFO: ObpyOLNbESSk1DBPVrWs9jIIAN6icERLyguvSDZo9F6hI335Bzw2/AlW2 cH6pNv8BqpB/WPmpTEriFFntm3eG29haV97z4cApriz0hMwAh1T4HZRN4U4dPnCotyunRbb b4ieQDdc+wjnW11WsMkW0r/eA/NUUGnxydwMOZa1rZRJNLeAic6KXQ0bc4cMHbfzMFVTlgK KUtJP7S3mdrVY4EA= X-QQ-mid: mx38t1553085815t961f7lz4 X-QQ-ORGSender: gusajhdjasjdas@fftgh.com X-Bordeaux-Score: 0 X-Spam-Flag: NO Received: from [127.0.0.1] by smail25.cn4e.com(7.3.0.15a) with ESMTP id 528A05F80005.14.1553085811.865164; Wed, 20 Mar 2019 20:43:31 +0800 (CST) X-BQId: 528A05F80005.14.1553085811.865164.1 X-Bordeaux-Type: MAILACCESS X-35BMId: 528A05F80005.14.1553085811.865164.1 X-Bordeaux-LOG: SA: TSMF, 3-0-0-0,3-0-0-0,3-0-0-0 eJzt2LFugkAYB3AXO9V3uLFdCAgXKjENLcFoFM/gDR1cTkApQS56mvAcPl+fpFO9lMGQaFwAE7/ fDd/yDf/hkv/l2q1/Ah8X59Mh06nrUKR1TUU9Ha0FHsnPDTtiw77TLlaCzIiUgG+QO/foDH3yXR ixQ27r+MVUdHl5MHutPDEAoG5PxSz3hzucEJTygKUxF/vG4oGG/N6wQ8aVxwAA3LHnYpb7w/sYT dDAJ57VXx8ES+IwYSIJmbBXq/06ls/N98ZCg8rJ/sii/OrLQVexatSUBwBwfzrFLPeH78woosTq m72eZhhv2LS3W2iNhyH7w3cs94te3iFjdGqYaJexFMmvrCXPa8sHAGjeH6p2Rwg= X-Bordeaux-Detail: eJxzsrIKjgwOcfW1sgIiRysrIwMDAyMrK2MrK4280pwcTS4nFBV+QCmgChMrKxN8KkxBKiywqXC GqzC1srKEqQAAN18i3A== X-Bordeaux-Action-libantispam.so: Action: Relay[NEXT,30505,0:0:0] X-Bordeaux-Action-libspamsa.so: X-Bordeaux-Action-libclamav.so: X-Bordeaux-Action-libsmtpext.so: X-AbuseCollector: NO Date: Wed, 20 Mar 2019 20:43:31 +0800 (CST) From: =?UTF-8?B?5LiA6K+6?= <gusajhdjasjdas@fftgh.com> To: 799144857 <799144857@qq.com> Message-ID: <5ad50a996988d83401699b20c98770a8@35MA.fftgh.com> Subject: =?UTF-8?B?5oOF5Lmm?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_13166_1227412828.1553085811074" X-RecallFlag: 5c923573a310ae8e9a829f6b X-Mailsessionid: 5c923573a310ae8e9a829f6b X-Priority: 3 ------=_Part_13166_1227412828.1553085811074 Content-Type: multipart/alternative; boundary="----=_Part_13167_399487114.1553085811074" ------=_Part_13167_399487114.1553085811074 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 5LiN55+l6YGT5LuO5LuA5LmI5pe25YCZ5byA5aeL77yM5oOz5Yiw5L2g5b+D6YeM5bCx5Y+Y5Y+R 5oWM77yM6YKj5LiA56eN5r+A5Yqo5LiN55+l6YGT5aaC5L2V5b2i5a6577yMICAKCiAgCuS9huW/ g+mHjOWNtOS4gOebtOacieS4quS9oO+8jOS7iuWkqeWcqOi/memHjOaIkem8k+i1t+WLh+awlOaK iueIseivtOS6huWHuuadpeW4jOacm+S9oOiDveaHgiDngrnlh7vnmbvlvZXmn6XnnIvlhajmlocg ICAgCgoKCg== ------=_Part_13167_399487114.1553085811074 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDE0cHg7Ij7kuI3nn6XpgZPku47ku4Dk uYjml7blgJnlvIDlp4vvvIzmg7PliLDkvaDlv4Pph4zlsLHlj5jlj5HmhYzvvIzpgqPkuIDnp43m v4DliqjkuI3nn6XpgZPlpoLkvZXlvaLlrrnvvIw8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHls ZT0iZm9udC1zaXplOiAxNHB4OyI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJm b250LXNpemU6IDE0cHg7Ij7kvYblv4Pph4zljbTkuIDnm7TmnInkuKrkvaDvvIzku4rlpKnlnKjo v5nph4zmiJHpvJPotbfli4fmsJTmiorniLHor7Tkuoblh7rmnaXluIzmnJvkvaDog73mh4IgPGEg aHJlZj0iaHR0cDovLyBodHRwOi8veWRzbWRsZXcuY24vbWFpbCI+54K55Ye755m75b2V5p+l55yL 5YWo5paHPC9hPiAmbmJzcDs8L3NwYW4+PC9kaXY+PC9kaXY+PGJyPjxicj4= ------=_Part_13167_399487114.1553085811074-- ------=_Part_13166_1227412828.1553085811074--
linux搭建SMTP邮件服务器,部分邮件内容乱码
## 我在linux上搭建了一个SMTP邮件服务器,主要是ELK用来发送预警邮件; ## ## 邮件内容都是一些JAVA异常的堆栈信息; ## ## 然后有部分邮件内容会出现乱码,看着好像是编码之后没有解码的内容。 **如图:** ![图片说明](https://img-ask.csdn.net/upload/201903/29/1553853033_574675.png) ## 不知道是什么原因造成的,我之前用的是163邮件服务器发送的,然后接收邮件的是QQ邮箱;开始以为是两个邮箱不一样导致的,后面把163邮件服务器改成了QQ邮件服务;但是问题依然存在...... ## 以下是我搭建SMTP邮件服务器的步骤: ![图片说明](https://img-ask.csdn.net/upload/201903/29/1553853331_653908.png) ![图片说明](https://img-ask.csdn.net/upload/201903/29/1553853384_698719.png) ![图片说明](https://img-ask.csdn.net/upload/201903/29/1553853452_587498.png) ## 以下是ELK发送预警邮件的配置: ``` { "actions": { "email_html_alarm_7d6323ca-2835-4ffe-a78b-65acb93c2f55": { "name": "email html alarm", "throttle_period": "1m", "email_html": { "to": "to@qq.com", "from": "from@163.com", "stateless": false, "subject": "xxx异常预警检测到[开发环境]xxx日志中有{{payload.hits.total}}个异常信息", "priority": "high", "html": "<p>Hi {{watcher.username}},</p><br/><p>xxx异常预警发现{{payload.hits.total}}个异常信息,<a href=\"http://192.168.2.16:5601/app/kibana\" target=\"_blank\">点击</a>查看详情。</p><p>异常信息如下:</p>{{#payload.hits.hits}}<p>MessageInfo:<i style=\"color: grey\">{{_source.message}}</i><br/>Hosts:<i style=\"color: grey\">{{_source.fields.logsource}}</i><br/>SourceFile:<i style=\"color: grey\">{{_source.source}}</i><br/>LogType:<i style=\"color: grey\">{{_source.fields.logtype}}</i><br/>Time:<i style=\"color: grey\">{{_source.@timestamp}}</i></p>{{/payload.hits.hits}}<br/><div style=\"color: grey\"><br/><hr><br/><p>此监视程序根据以下标准发送警报:</p><br/><ul><li>{{watcher.condition.script.script}}</li></ul><br/></div>" } } }, "input": { "search": { "request": { "index": [ "filebeat-*" ], "body": { "query": { "bool": { "must": [ { "term": { "fields.logtype": "xxx" } }, { "term": { "tags": "exception" } }, { "range": { "@timestamp": { "gte": "now-1h", "lte": "now", "format": "epoch_millis" } } } ], "must_not": [], "should": [] } }, "sort": [ { "@timestamp": { "order": "desc" } } ] } } } }, "condition": { "script": { "script": "payload.hits.total >= 1" } }, "trigger": { "schedule": { "later": "every 1 hours" } }, "disable": false, "report": false, "title": "xxx异常预警", "save_payload": false, "spy": false, "impersonate": false, "username": "xxx" } ``` ## 求高手指点!!!
postfix 向外发邮件报错
使用postfix给163发邮件报错 ``` 23695120080 502 Wed Jan 16 10:34:42 admin@zhang0027.com (connect to 163mx02.mxmail.netease.com[220.181.14.148]:25: Connection timed out) 156****1085@163.com ``` 给qq邮箱发邮件 ``` D40CA1202EF 339 Tue Jan 15 16:31:33 admin@zhang0027.com (connect to mx1.qq.com[2001:df6:f400::2808]:25: Cannot assign requested address) 104****878@qq.com ``` 在内网中发邮件没有问题,不能发外网 配置是按照 https://www.cnblogs.com/Dicky-Zhang/p/6084852.html 配置的
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
如何防止抄袭PCB电路板
目录 1、抄板是什么 2、抄板是否属于侵权 3、如何防止抄板 1、抄板是什么 抄板也叫克隆或仿制,是对设计出来的PCB板进行反向技术研究;目前全新的定义:从狭义上来说,抄板仅指对电子产品电路板PCB文件的提取还原和利用文件进行电路板克隆的过程;从广义上来说,抄板不仅包括对电路板文件提取、电路板克隆、电路板仿制等技术过程,而且包括对电路板文件进行修改(即改板)、对电子产品外形模具进行三维...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问