Latest web development tutorials
×

Ruby หลักสูตร

Ruby หลักสูตร Ruby แนะนำโดยย่อ Ruby สิ่งแวดล้อม Ruby ติดตั้ง Linux Ruby ติดตั้ง Windows Ruby การเข้ารหัสจีน Ruby เลือกบรรทัดคำสั่ง Ruby ตัวแปรสภาพแวดล้อม Ruby ไวยากรณ์ Ruby ชนิดข้อมูล Ruby คลาสและวัตถุ Ruby กรณีระดับ Ruby ตัวแปร Ruby ผู้ประกอบการ Ruby หมายเหตุ Ruby เงื่อนไข Ruby การไหลเวียน Ruby ทาง Ruby กลุ่ม Ruby โมดูล Ruby เชือก Ruby แถว Ruby กัญชา Ruby วันที่และเวลา Ruby ขอบเขต Ruby iterator Ruby input และ output ไฟล์ Ruby File ชั้นเรียนและวิธี Ruby Dir ชั้นเรียนและวิธี Ruby ผิดปกติ

Ruby การสอนที่ทันสมัย

Ruby เชิงวัตถุ Ruby นิพจน์ปกติ Ruby การเข้าถึงฐานข้อมูล - DBI หลักสูตร Ruby MySQL Ruby CGI โครงการ Ruby CGI ทาง Ruby CGI Cookies Ruby CGI Sessions Ruby ส่ง Email SMTP Ruby Socket โครงการ Ruby XML, XSLT, XPath Ruby Web Services Ruby multithreading Ruby JSON Ruby RubyGems

ทับทิมส่งจดหมาย - SMTP

SMTP (เอสเอ็มทีพี) ที่เป็น Simple Mail Transfer Protocol ซึ่งเป็นชุดของกฎสำหรับการส่งข้อความจากต้นทางไปยังปลายทางซึ่งจะมีการควบคุมวิธีการตัวอักษรของการขนส่ง

ทับทิมมี Net :: SMTP ในการส่งจดหมายและให้สองวิธีและการเริ่มต้นใหม่

วิธีการใหม่ที่มีสองพารามิเตอร์:

  • ชื่อเซิร์ฟเวอร์เริ่มต้นlocalhost
  • หมายเลขพอร์ตเริ่มต้นคือ25

วิธีการเริ่มต้นมีพารามิเตอร์ต่อไปนี้:

  • เซิร์ฟเวอร์ -เซิร์ฟเวอร์SMTPIP เริ่มต้นคือ localhost
  • พอร์ต -หมายเลขพอร์ตเริ่มต้นคือ 25
  • โดเมนเนม -โดเมนอีเมลผู้ส่ง ENV เริ่มต้น [ "HOSTNAME"]
  • บัญชี -ชื่อผู้ใช้เริ่มต้นเป็นศูนย์
  • Password -รหัสผ่านของผู้ใช้เริ่มต้นเป็นศูนย์
  • AuthType -ประเภทของการตรวจสอบเริ่มต้นคือcram_md5

SMTP วิธีวัตถุ instantiation เรียก sendmail พารามิเตอร์ต่อไปนี้:

  • ที่มา -สตริงหรืออาร์เรย์ของแต่ละซ้ำหรืออะไรในเวลาใด ๆ ตอบแทน
  • ผู้ส่ง -สตริงที่ปรากฏในรูปแบบของข้อมูลอีเมล
  • ผู้รับ -สตริงหรืออาร์เรย์ของสตริงที่เป็นตัวแทนที่อยู่ของผู้รับ

ตัวอย่าง

ต่อไปนี้จะมีสคริปต์ทับทิมง่ายที่จะส่งอีเมล:

require 'net/smtp'

message = <<MESSAGE_END
From: Private Person <[email protected]>
To: A Test User <[email protected]>
Subject: SMTP e-mail test

This is a test e-mail message.
MESSAGE_END

Net::SMTP.start('localhost') do |smtp|
  smtp.send_message message, '[email protected]', 
                             '[email protected]'
end

ในตัวอย่างข้างต้นคุณได้ตั้งค่าข้อความอีเมลขั้นพื้นฐานให้ความสนใจในรูปแบบที่ถูกต้องชื่อ E-mail มาที่ได้มาจากการ, เพื่อให้, และเรื่องระหว่างข้อความและข้อมูลส่วนหัวต้องมีบรรทัดว่าง

ใช้ Net :: SMTP เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ SMTP ในเครื่องท้องถิ่นในการส่งข้อความโดยใช้กระบวนการ send_message พารามิเตอร์กระบวนการในการส่งข้อความที่มีอีเมลผู้รับ

ถ้าคุณไม่ได้ทำงานบนเซิร์ฟเวอร์เครื่องของคุณสามารถใช้การสื่อสาร SMTP สุทธิ :: มีเซิร์ฟเวอร์ระยะไกล หากคุณใช้บริการเว็บเมล์ (เช่น Hotmail หรือ Yahoo Mail) ผู้ให้บริการอีเมลของคุณจะให้รายละเอียดของเซิร์ฟเวอร์การส่งจดหมายสำหรับคุณ:

Net::SMTP.start('mail.your-domain.com')

รหัสดังกล่าวจะเชื่อมต่อโฮสต์ mail.your-domain.com จำนวน 25 พอร์ตของเซิร์ฟเวอร์อีเมลถ้าคุณต้องกรอกชื่อผู้ใช้และรหัสผ่านรหัสเป็นดังนี้:

Net::SMTP.start('mail.your-domain.com', 
                25, 
                'localhost', 
                'username', 'password', :plain)

ตัวอย่างข้างต้นใช้ชื่อผู้ใช้และรหัสผ่านเพื่อเชื่อมต่อกับโฮสต์ที่ระบุไว้ mail.your-domain.com จำนวน 25 พอร์ตของเซิร์ฟเวอร์อีเมล


ส่งอีเมล HTML ที่มีทับทิม

สุทธิ :: SMTP ยังให้การสนับสนุนสำหรับการส่งข้อความในรูปแบบ HTML

เมื่อส่ง E-mail ที่คุณสามารถตั้งค่ารุ่น MIME พิมพ์เอกสารชุดอักขระในการส่งข้อความในรูปแบบ HTML

ตัวอย่าง

ตัวอย่างต่อไปนี้จะใช้ในการส่งข้อความในรูปแบบ HTML:

require 'net/smtp'

message = <<MESSAGE_END
From: Private Person <[email protected]>
To: A Test User <[email protected]>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP e-mail test

This is an e-mail message to be sent in HTML format

<b>This is HTML message.</b>
<h1>This is headline.</h1>
MESSAGE_END

Net::SMTP.start('localhost') do |smtp|
  smtp.send_message message, '[email protected]', 
                             '[email protected]'
end

ส่งอีเมล์พร้อมแนบ

หากคุณจำเป็นต้องส่งเนื้อหาผสมของ e-mail ของคุณต้องกำหนดชนิดของเนื้อหาเป็น multipart / ผสม เพื่อให้คุณสามารถเพิ่มสิ่งที่แนบในเนื้อหาข้อความ

อุปกรณ์เสริมก่อนที่จะโอนนั้นจะต้องใช้แพ็ค ( "M") ฟังก์ชันแปลงเนื้อหาในรูปแบบ base64

ตัวอย่าง

ตัวอย่างต่อไปนี้จะส่งสิ่งที่แนบมาเป็น /tmp/test.txt E-mail:

require 'net/smtp'

filename = "/tmp/test.txt"
# 读取文件并编码为base64格式
filecontent = File.read(filename)
encodedcontent = [filecontent].pack("m")   # base64

marker = "AUNIQUEMARKER"

body =<<EOF
This is a test email to send an attachement.
EOF

# 定义主要的头部信息
part1 =<<EOF
From: Private Person <[email protected]>
To: A Test User <[email protected]>
Subject: Sending Attachement
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=#{marker}
--#{marker}
EOF

# 定义消息动作
part2 =<<EOF
Content-Type: text/plain
Content-Transfer-Encoding:8bit

#{body}
--#{marker}
EOF

# 定义附件部分
part3 =<<EOF
Content-Type: multipart/mixed; name=\"#{filename}\"
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename="#{filename}"

#{encodedcontent}
--#{marker}--
EOF

mailtext = part1 + part2 + part3

# 发送邮件
begin 
  Net::SMTP.start('localhost') do |smtp|
     smtp.sendmail(mailtext, '[email protected]',
                          ['[email protected]'])
  end
rescue Exception => e  
  print "Exception occured: " + e  
end  

หมายเหตุ: คุณสามารถระบุที่อยู่ของจำนวนมากของการส่ง แต่ต้องใช้จุลภาค