web-dev-qa-db-ja.com

CCの人にメールが送信されない

Pythonを使用してメールを送信するための次のスクリプトがあります

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os

FROMADDR = "[email protected]"
PASSWORD = 'foo'

TOADDR   = ['[email protected]', '[email protected]']
CCADDR   = ['[email protected]', '[email protected]']

# Create message container - the correct MIME type is multipart/alternative.
msg            = MIMEMultipart('alternative')
msg['Subject'] = 'Test'
msg['From']    = FROMADDR
msg['To']      = ', '.join(TOADDR)
msg['Cc']      = ', '.join(CCADDR)

# Create the body of the message (an HTML version).
text = """Hi  this is the body
"""

# Record the MIME types of both parts - text/plain and text/html.
body = MIMEText(text, 'plain')

# Attach parts into message container.
msg.attach(body)

# Send the message via local SMTP server.
s = smtplib.SMTP('server.com', 587)
s.set_debuglevel(1)
s.ehlo()
s.starttls()
s.login(FROMADDR, PASSWORD)
s.sendmail(FROMADDR, TOADDR, msg.as_string())
s.quit()

スクリプトを使用すると、メールがtoaddr1toadd2の両方に配信されていることがわかりますが、ccaddr1ccaddr2はメールをまったく受信しません。

興味深いことに、toaddr1toadd2が受信したメールを確認すると、CCにccaddr1ccaddr2が存在することがわかります。

スクリプトにエラーはありますか?当初、これは私のメールサーバーの問題かもしれないと思っていました。 Gmailで試してみたところ、同じ結果が得られました。つまり、現在のメールサーバーのアカウントであるかCCのGmailアカウントであるかに関係なく、[宛先]フィールドのユーザーがメールを正しく受信し、に記載されている正しいアドレスを持っていても、受信者はメールを受信しません。 CCフィールド

21
Pulimon

メールを送信するときは、CCADDRとTOADDRを一緒に入れる必要があると思います。

s.sendmail(FROMADDR, TOADDR+CCADDR, msg.as_string())

メッセージにアドレスを正しく追加していますが、封筒にもCCアドレスが必要です。

docs から:

from_addrおよびto_addrsパラメーターは、トランスポートエージェントによって使用されるメッセージエンベロープを構築するために使用されます。

38
brice

メッセージでCCエントリを指定しましたが、エンベロープでは指定しませんでした。メッセージがCCおよびBCCエントリにも送信されることを確認するのはあなたの仕事です。

TOADDR + CCADDR => TypeErrorで以下のエラーが発生しました:str(「リスト」ではなく)のみをstrに連結できます

私は以下の変更を行いました、そしてそれは私のために働きました。 「To」、「Cc」、「Bcc」に添付ファイル付きのメールを正常に送信します。

toaddr = ['mailid_1','mailid_2']
cc = ['mailid_3','mailid_4']
bcc = ['mailid_5','mailid_6']
subject = 'Email from Python Code'
fromaddr = 'sender_mailid'
message = "\n  !! Hello... !!"

msg['From'] = fromaddr
msg['To'] = ', '.join(toaddr)
msg['Cc'] = ', '.join(cc)
msg['Bcc'] = ', '.join(bcc)
msg['Subject'] = subject

s.sendmail(fromaddr, (toaddr+cc+bcc) , message)
0
Omkar