1. 程式人生 > >python通過SMTP協議傳送郵件失敗,報錯505或535

python通過SMTP協議傳送郵件失敗,報錯505或535

傳送失敗錯誤1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')
   我們使用python傳送郵件時相當於自定義客戶端根據使用者名稱和密碼登入,然後使用SMTP服務傳送郵件,新註冊的163郵箱是預設不開啟客戶端授權的,因此登入總是被拒絕,解決辦法(以163郵箱為例):進入163郵箱-設定-客戶端授權密碼-開啟(授權碼是用於登入第三方郵件客戶端的專用密碼),非第三方登入密碼不變。

錯誤2:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')

  以163郵箱為例,在開啟POP3/SMTP服務,並開啟客戶端授權密碼時會設定授權碼,將這個授權碼代替smtplib.SMTP().login(user,password)方法中的password即可。

以下是python利用SMTP協議傳送郵件的程式碼:

#coding:utf-8
import smtplib
from email.mime.text import MIMEText  # 引入smtplib和MIMEText

host = 'smtp.163.com'  # 設定發件伺服器地址
port = 25  # 設定發件伺服器埠號。注意,這裡有SSL和非SSL兩種形式
sender = '
[email protected]
' # 設定發件郵箱,一定要自己註冊的郵箱 pwd = 'XXXXXX' # 設定發件郵箱的密碼,等會登陸會用到 receiver = '[email protected]' # 設定郵件接收人,可以是扣扣郵箱 body = '<h1>Hi</h1><p>test</p>' # 設定郵件正文,這裡是支援HTML的 msg = MIMEText(body, 'html') # 設定正文為符合郵件格式的HTML內容 msg['subject'] = 'Hello world' # 設定郵件標題 msg['from'] = sender # 設定傳送人 msg['to'] = receiver # 設定接收人 try: s = smtplib.SMTP(host, port) # 注意!如果是使用SSL埠,這裡就要改為SMTP_SSL s.login(sender, pwd) # 登陸郵箱 s.sendmail(sender, receiver, msg.as_string()) # 傳送郵件! print 'Done' except smtplib.SMTPException: print 'Error'

一些常用郵箱發件伺服器及埠號

郵箱   發件伺服器    非SSL協議埠    SSL協議埠

163   smtp.163.com      25          465/587

qq    smtp.qq.com      25          465/587

相關推薦

python通過SMTP協議傳送郵件失敗,505535

傳送失敗錯誤1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')   我們使用python傳送郵件時相當於自定義客戶端

python應用系列教程——python使用smtp協議傳送郵件:html文字郵件、圖片郵件、檔案附件郵件

全棧工程師開發手冊 (作者:欒鵬) python使用smtp協議傳送電子郵件。包含傳送html文字郵件、包含圖片附件的郵件,包含其他檔案附件的郵件。可設定郵件的收發人,主題,內容。並以163郵件為例,分別在python2.7和python3.6下進行試驗。

c語言利用SMTP協議傳送郵件

#ifdef WIN32 #include <windows.h> #include <stdio.h> #else #include <stdio.h> #include <sys/types.h> #include

C++ 使用smtp協議傳送郵件的簡單實現

心血來潮,簡單實現一個傳送郵件的小程式, 首先實現一個簡單的socket類 標頭檔案 #ifndef _CSOCKET_H_ #define _CSOCKET_H_ #include <sys/socket.h> #include <arpa/inet

Python使用SMTP自動傳送郵件

連結中的教程介紹了基礎的使用方法,這裡不再重複。這裡主要是介紹使用中碰到的問題 下面是我的示例程式 # -*-coding:utf-8 -*- ''' Created on 2016.11.12 Se

C#使用SMTP協議傳送郵件(騰訊企業郵箱)

大部分郵箱都支援使用SMTP協議傳送郵件,使用這種方法可以很方便的在系統開發中傳送郵件。 在C#語言中,傳送郵件的相關類位於System.Net.Mail名稱空間下。 具體過程為建立郵件類MailM

java使用smtp協議傳送郵件注意的問題

公司經常遇到傳送郵件的問題,普通郵件傳送就不說了,說一下無賬號密碼傳送郵件的過程,在這裡總結一下: smtp傳送郵件過程 這部分說明是從網上摘抄的,寫的很詳細,我就貼過來修改了一下: 使用smtp協議傳送郵件給郵件伺服器時規定了要做以下幾件事:   1、使用"ehlo

Python 使用smtp傳送郵件失敗 在Windows Server R2012上傳送失敗的問題

我使用Python編寫了一段使用stmp傳送郵件的例子,在本機上傳送能成功,但是在我的Windows Server R2012伺服器上一直髮送失敗,一直卡在連線SMTP伺服器那一步,經過一番折騰,終於可以了。接下來給出傳送失敗和傳送成功的程式碼。一、失敗程式碼 # -*- c

使用一個簡單的python指令碼將一個本地檔案以碼流的形式,通過UDP協議傳送到對端:

import socket import os import stat import struct MAX_PACK_SIZE = 100 DEST_IP = 'localhost' DEST_PORT = 17800 filename = raw_input("in

JavaMail使用SMTP協議傳送電子郵件(詳解)

package cn.outofmemory.javamail; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import j

Java 通過SMTP實現傳送QQ郵件

在eclipse中建立專案,並把javax.amil.jar和commons-email-1.5,jar複製到專案中連結:https://pan.baidu.com/s/1sQjA1GEpKi6IJJRGHKxjeA 密碼:4ene新增步驟:1.首先在專案下建立一個資料夾,儲

PHPMailer通過Gmail和Office365的SMTP賬號傳送郵件設定

以下測試可用。 Gmail $mail = new PHPMailer();    $mail->IsSMTP(); $mail->SMTPAuth = true;  //主要區別 $mail->Port = 25;  $mail->Host =

powershell 通過SMTP發送郵件

cte shell add 使用 net obj als default cli 一直以來就用.net的方式發送郵件。由於powershell自帶的方式用起來easy出錯。且比較簡單,近期看到一些人也反應使用中遇到麻煩。 #定義函數 function sendmail(

配置gitlab通過smtp發送郵件

ica tlab onf res auto end 命令 TP con https://www.centos.bz/2017/08/gitlab-send-email-with-smtp/ 1. 編輯/etc/gitlab/gitlab.rb文件(加到文件最後面就好了)

gitlab配置通過smtp發送郵件(QQ exmail騰訊企業為例)

res use 企業 mbo tar 郵箱 rails blank authent gitlab配置通過smtp發送郵件(QQ exmail騰訊企業為例) 首先祭出官網文檔鏈接:https://docs.gitlab.com/omnibus/settings/smtp

使用 spring封裝的javamail linux伺服器傳送郵件失敗解決

原文參考:https://blog.csdn.net/a540891049/article/details/79385471 由於某些平臺的linxu伺服器為了安全起見 遮蔽了傳送郵件的常用埠  25、465、587 下面我用QQ郵箱舉例子   用Linux

python selenium-7自動傳送郵件

https://jingyan.baidu.com/article/647f0115b78f8d7f2148a8e8.html 1.傳送HTML格式的郵件 import smtplib from email.mime.text import MIMEText from email.header impor

laravel5.5自帶使用者認證重置密碼時傳送郵件失敗的問題

問題 laravel5.5使用開箱即用的使用者認證時,重置密碼需要傳送郵件,結果報錯,錯誤已經修復,而且當時沒有截圖,所以就不展示啦,反正原因就是因為沒有進行郵件相關的配置,laravel預設是使用SMTP進行郵件傳送,而我使用的是163郵箱,所以接下來就是要在我的163郵箱中開啟SMTP伺服器

[Python]python3使用smtplib傳送郵件,帶xlsx附件

#encoding=utf8 import smtplib from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import M

Ubuntu 直接使用外部 SMTP 伺服器傳送郵件

不在伺服器上啟動 sendmail 服務,直接使用外部 SMTP 的傳送郵件其實更簡單,下面是使用 smtp.163.com 的基本配置 set [email protected] set smtp=smtps://smtp.163.com set smtp-auth-user