2012-08-07 18 views
6

私は、Pythonのsmtplibを使用して電子メールの優先度を高く設定しようとしています。私はこのライブラリを使って電子メールを送っていますが、優先順位をつける方法が不明です。 keyword priority is not recognized.SMTPが優先メールを送信する

私も使って試してみました:

msg['X-MSMail-Priority'] = 'High' 
私はエラーを得たしかし

smtp.sendmail(from_addr, to_addr, msg, priority ="high") 

import smtplib 
from smtplib import SMTP 

私の最初の試みは、優先順位を設定する方法を研究してからこれを使用していました

しかし、別のエラーが発生します。 smtplibだけを使って優先度を設定する方法はありますか?

+4

でそれを使用して、正確に「別のエラー」は何ですか?それとは別に、あなたは新しいAPIコールを導入しています。 sendmail()メソッドは '優先度'パラメータを取らない - なぜAPIドキュメントをチェックしないのですか? sendmail()は、パラメータのリストであるmail_optionsパラメータを受け取ります。推測APIはありません。 –

+0

mail_optionsパラメータを指定してWeb上にドキュメントが見つかりません!私はこれをうまく行かなかった:smtp.sendmail(from_addr、to_addr、msg [、mail_options = [priority = "high"]]) – Sarah92

+0

@SarahAddis [The docs](http://docs.python.org/library/smtplib .html#smtplib.SMTP.sendmail)は、 "発信者は、MAIL FROMコマンドでmail_optionsとして使用されるESMTPオプション(8bitmimeなど)のリストを渡すことがあります。すべてのRCPTコマンドをrcpt_optionsとして渡すことができます。 RFCでは、どのESMPTオプションとRCPTオプションがあるかを調べる必要があります。 – glglgl

答えて

15

優先度はメールの内容(正確にはヘッダーの内容)の問題です。 hereを参照してください。

次の質問は、それを電子メールに入れる方法です。

それは完全にそのメールをどのように構築するかによって異なります。あなたがemailモジュールを使用する場合は、それをこのように行うだろう:

from email.Message import Message 
m = Message() 
m['From'] = 'me' 
m['To'] = 'you' 
m['X-Priority'] = '2' 
m['Subject'] = 'Urgent!' 
m.set_payload('Nothing.') 

をしてから

smtp.sendmail(from_addr, to_addr, m.as_string()) 
+0

メール送信時の「フラグ」の設定方法は?私は上記の行を "m ['Flag'] = '1'"のように追加してみました。私は何のエラーもなかったが、旗はどちらにもなかった。 – zingy

+1

@zingy優先順位2を使用すると、あなたのフラグが返されます – Busturdust

+0

@Busturdust優先順位 '2'では感嘆符のみが表示されましたが、フラグは有効になっていませんでした。 – zingy

関連する問題