SMTP: เป็นไปได้ไหมที่จะ CC บางคนโดยไม่ส่งต้นฉบับ?


24

จริง ๆ แล้วฉันเริ่มคิดเกี่ยวกับเรื่องนี้เพราะฉันลืมซีซีใครบางคนในอีเมลที่ฉันควรจะส่งและฉันต้องการให้เขาได้รับสำเนาโดยไม่ต้องส่งซ้ำให้กับคนอื่น ฉันลงเอยแค่ส่งต่อให้เขา แต่ฉันก็ยังสงสัยอยู่

รายการ CC และ BCC อยู่ที่ไหนใน SMTP คุณจำเป็นต้องควบคุมเซิร์ฟเวอร์ SMTP หรือไม่หรือสามารถทำได้ฝั่งไคลเอ็นต์

ขอบคุณ!

email  smtp 

5
เหตุใดจึงถูกลดระดับลง มันเป็นคำถามที่น่าสนใจหลังจากทั้งหมด ...

5
@Achilles - รายละเอียดของสิ่งที่เป็นไปได้หรือไม่นั้นคือคำถามของ IMHO มันถูกกำหนดใน RFCs 2821 และ 2822 ในตอนท้ายของวันที่ลูกค้า mail ทั้งหมดออกมีโปรแกรมตามคำจำกัดความเหล่านี้และนักพัฒนาแต่ละคนที่นี่อาจต้องเจาะลึก SMTP ในบางจุด ฉันมีอย่างแน่นอน

3
โปรดหยุดการโหวตเพื่อปิดสิ่งนี้ในฐานะ "เป็นของ SuperUser" เพียงเพราะ OP กล่าวว่าเป็นการกระทำของการส่งอีเมลที่ทำให้เขาคิดเกี่ยวกับปัญหานี้จึงไม่ได้ตั้งคำถามที่แท้จริงว่า "ไม่เกี่ยวข้องกับการเขียนโปรแกรม" หากฉันมีคำถามการใช้งาน http ที่เกิดขึ้นกับฉันเมื่อฉันคลิกที่ลิงค์ทางเว็บนั่นจะเป็น "ไม่เกี่ยวกับการเขียนโปรแกรม" หรือไม่? ไม่ได้

คำตอบ:


17

ในระยะสั้น - ใช่เป็นไปได้ถ้าคุณสามารถเชื่อมต่อโดยตรงไปยังเซิร์ฟเวอร์ SMTP ผู้รับ ด้วยเหตุผลที่Rup สรุปไว้ในคำตอบเขาอาจไม่สามารถนำไปใช้ได้จริงโดยเฉพาะและถ้าคุณอยู่บนเครือข่ายที่อยู่หลังไฟร์วอลล์คุณอาจไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลบนพอร์ต TCP 25 ได้เลย

สมมติว่าสิ่งนี้ใช้ไม่ได้สำหรับคุณแล้วนี่คือรายละเอียด:

เมื่อคุณ (เป็นไคลเอนต์อีเมล) เชื่อมต่อกับเซิร์ฟเวอร์อีเมลของผู้รับทั้งหมดที่ใส่ใจเกี่ยวกับเซิร์ฟเวอร์ (สำหรับวัตถุประสงค์การจัดส่ง) RCPT TO:เป็นผู้รับที่ระบุไว้ใน ดูRFC2821 - ธรรมดา Mail Transfer Protocol มันไม่ได้แยกความแตกต่างระหว่างประเภทของผู้รับ (ถึง:, สำเนา: หรือสำเนาลับถึง :) มันเพิ่งรู้ว่าคุณกำลังพูดว่า "ตรวจสอบให้แน่ใจว่าผู้รับในเซิร์ฟเวอร์ของคุณได้รับสิ่งนี้"

อย่างไรก็ตามเท่าที่ไคลเอ็นต์จดหมายจริงของผู้รับมีความกังวลส่วนหัวในข้อความที่บอกว่าใครเป็นผู้รับข้อความทั้งหมด ดูRFC2822 - อินเตอร์เน็ตรูปแบบข้อความ

กล่าวอีกนัยหนึ่งถึง:, CC: และ BCC: ส่วนหัวจะมีเพื่อประโยชน์ของไคลเอนต์อีเมลในขณะที่การกระจายที่เกิดขึ้นจริงจะถูกจัดการในระหว่างการสนทนา SMTP กับเซิร์ฟเวอร์อีเมล

ในความเป็นจริงคุณสามารถสนทนากับเซิร์ฟเวอร์ SMTP ที่มีลักษณะดังนี้:

C:>telnet aspmx.l.google.com 25
220 mx.google.com ESMTP f70si17620845wej.110
HELO myserver.mydomain.co.uk
250 mx.google.com at your service
MAIL FROM: <test@mydomain.co.uk>
250 2.1.0 OK f70si17620845wej.110
RCPT TO: <user_i_missed_out@mydomain.co.uk>
250 2.1.5 OK f70si17620845wej.110
DATA
354  Go ahead f70si17620845wej.110
To: recipient_on_original@somewhere.com
cc: another_recipient_on_original@somewhere.com, user_i_missed_out@mydomain.co.uk
Subject: My email

Hi - this is a test
.
250 2.0.0 OK 1277401976 f70si17620845wej.110
QUIT
221 2.0.0 closing connection f70si17620845wej.110


Connection to host lost.

ผลกระทบสุทธิเป็นที่user_i_missed_out@mydomain.co.ukได้รับสำเนาของอีเมลที่มีเขาอยู่ในรายชื่อซีซีเช่นเดียวกับผู้รับเดิมและผู้รับซีซีเดิมrecipient_on_original@somewhere.comanother_recipient_on_original@somewhere.com

อย่างไรก็ตามเนื่องจากเราไม่เคยเชื่อมต่อกับเซิร์ฟเวอร์อีเมลของสองหลังพวกเขาจึงไม่ได้รับอีเมลอีกเป็นครั้งที่สอง และเนื่องจากเราไม่สามารถเปลี่ยนอีเมลที่ถูกส่งไปแล้วก่อนหน้าพวกเขาจะไม่สังเกตเห็นว่าเราเพิ่มผู้รับสำเนาถึงอีกราย


4

จะเกิดอะไรขึ้น

  1. คุณส่งอีเมลไปยังเซิร์ฟเวอร์ SMTP ท้องถิ่น (หรือ ISP) ของคุณ
  2. เซิร์ฟเวอร์ SMTP ในพื้นที่ของคุณจะขยายรายชื่อผู้รับออกไปและทำรายชื่อเซิร์ฟเวอร์ที่จะต้องพูดคุยกับผู้รับทั้งหมด มันเอาส่วนหัวของ BCC ออกจากข้อความ
  3. สำหรับเซิร์ฟเวอร์แต่ละเครื่องจะเชื่อมต่อและพูดว่า "นี่คืออีเมลสำหรับผู้รับ X, Y: นี่คือส่วนหัวของข้อความและเนื้อหา"

เช่นถ้าคุณสามารถส่งอีเมลเป็น 3 ให้ส่งตรงไปยังเซิร์ฟเวอร์ SMTP ของผู้ใช้ CC ที่ไม่ได้รับจากนั้นคุณสามารถส่ง CC นั้นได้โดยไม่ต้องส่งจดหมายให้คนอื่น โดยเฉพาะผู้รับ BCC จะได้รับส่วนหัวของข้อความและเนื้อหาที่ไม่ได้กล่าวถึงเลย (ยกเว้นส่วนหัว 'X-Envelope-To')

ในแง่การปฏิบัติแม้ว่ามันเป็นเรื่องง่ายมากที่จะส่งถึงทุกคน ในการทำเช่นนี้อย่างมีประสิทธิภาพคุณจะต้องแก้ไขไคลเอนต์อีเมลและเซิร์ฟเวอร์ SMTP ในเครื่องของคุณเพื่อสนับสนุนรายชื่อผู้รับปลอมหรือรายการยกเว้นที่ไม่ส่งเพื่อส่งจริงเพื่อดำเนินการในระหว่างการขยายผู้รับ


2

ปัญหานี้จะแก้ไขได้จริงโดย IETF ที่มีอยู่ทำงานในความคืบหน้าคือเครื่องสำอาง Carbon Copy น่าเสียดายที่ฉันไม่รู้จักไคลเอนต์อีเมลใด ๆ ที่ใช้ CCC จริง ๆ แล้วเนื่องจากร่างนั้นได้รับการพิจารณาอย่างกว้างขวางว่าเป็นเรื่องตลกที่ไม่มีสาระสำหรับวันเอพริลฟูล

สิ่งที่คุณถามเป็นไปได้ส่วนใหญ่เป็นเพราะเนื้อหาของอีเมลไม่ได้ส่งผลกระทบต่ออีเมลที่ถูกส่งไปที่เลเยอร์ SMTP ไคลเอนต์อีเมลถูกเขียนขึ้นเพื่อส่งเมลให้กับทุกคนในฟิลด์ถึง, CC และ BCC แต่พวกเขาไม่จำเป็นต้องทำสิ่งนี้ด้วยมาตรฐานใด ๆ

อัปเดต:เพื่อความแม่นยำเมื่อส่งจดหมายไปยังเซิร์ฟเวอร์ SMTP ผู้ส่งจะใช้คำสั่ง RCPT เพื่อระบุว่าจะให้ส่งอีเมลถึงที่อยู่อีเมลใด จากนั้นส่งเนื้อหาของเมลด้วยคำสั่ง DATA เซิร์ฟเวอร์ SMTP ไม่ควรดูเนื้อหา มันเป็นไปได้ที่จะเพิ่มผู้รับหนึ่งคนลงในบรรทัดส่วนหัว CC ของข้อความและขอให้เซิร์ฟเวอร์ SMPT ส่งไปยังที่อยู่เดียวเท่านั้น


0

หากฉันเข้าใจสิ่งนี้อย่างถูกต้องสิ่งที่คุณพยายามทำคือส่งข้อความเป็นครั้งที่สองรวมถึงผู้รับดั้งเดิมในส่วนหัวถึง: และสำเนาถึง: แต่ได้รับข้อความเพิ่มเติมจากผู้รับบางคนเท่านั้น ดังที่ได้กล่าวไว้แล้วคำตอบอื่น ๆ สามารถทำได้โดยไคลเอนต์อีเมลของคุณสื่อสารกับเซิร์ฟเวอร์ SMTP และระบุผู้รับเพียงคนเดียว แต่รวมถึงส่วนหัวถึง: และสำเนาถึง: ของอีเมลต้นฉบับ

Apple Mailลูกค้ามีการทำงานที่สามารถทำอย่างมีประสิทธิภาพนี้ เปลี่ยนเส้นทางฟังก์ชั่นสามารถพบได้ในเมนูข้อความหรือเมนูบริบทสำหรับข้อความ ฟังก์ชั่นนี้ออกแบบมาเพื่อใช้เป็นวิธีการส่งต่ออีเมลไปยังผู้อื่นอย่างโปร่งใสโดยไม่ต้องเพิ่ม Fwd: ไปยังหัวเรื่องและเพิ่มระดับการเสนอราคา แต่สามารถใช้กับข้อความที่คุณส่งไปก่อนหน้านี้ มันเก็บฟิลด์ To / Cc / From ของข้อความต้นฉบับและเพิ่มผู้รับใหม่ในส่วนหัว Resent-To และ Resent-CC ผู้รับข้อความที่ส่งใหม่เท่านั้นที่จะเป็นคนที่คุณระบุเมื่อเขียนมัน ไม่ชัดเจนว่าวิธีนี้ใช้งานได้อย่างไรเมื่อคุณใช้คุณลักษณะนี้ดังนั้นโปรดทดสอบก่อนล่วงหน้า


-1

มันอาจได้รับอนุญาต / ไม่ได้รับอนุญาตบนพื้นฐานของลูกค้าโดยลูกค้า แต่คุณสามารถลองใส่บางสิ่งบางอย่างปลอม (เช่น ";; ผู้รับที่ไม่เปิดเผย ;;") ในถึงและทำให้ทุกคนใน BCC จากนั้นการทำซ้ำจะทำให้ดูเหมือนอีเมลเดิมตราบใดที่ไม่มีใครเฝ้าดูอย่างใกล้ชิดกับการประทับเวลาและข้อความที่เป็นเกลียวและเช่นนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.