Exim ไม่สามารถส่งข้อความ Gitlab พร้อมข้อผิดพลาด“ ไม่มีที่อยู่ผู้รับ”


0

ฉันกำลังตั้งค่าเซิร์ฟเวอร์ Gitlab และกำลังทำการติดตั้งให้เสร็จ

ในขณะที่ทุกอย่างด้วย Gitlab ทำงานได้ดีการยืนยันที่อยู่อีเมลล้มเหลว ฉันได้รับข้อผิดพลาดต่อไปนี้:

Date: Wed, 08 Jan 2014 15:41:50 +0100
From: Mail Delivery System <Mailer-Daemon@git.example.com>
To: git@git.example.com
Subject: Mail failure - no recipient addresses

A message that you sent using the -t command line option contained no
addresses that were not also on the command line, and were therefore
suppressed. This left no recipient addresses, and so no delivery could
be attempted.

------ This is a copy of your message, including all the headers. ------

Date: Wed, 08 Jan 2014 15:41:50 +0100
From: git@git.example.com
Reply-To: git@git.example.com
To: username@myemail.com
Message-ID: <52cd63ae85c0d_1802235567aa687b9@example.hostname.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Welcome shade!</p>

  <p>You can confirm your email (username@myemail.com) through the link below:</p>

<p><a href="https://git.example.com/users/confirmation?confirmation_token=XXXXXXXXXXXXX">Confirm my account</a></p>

นี่เป็นข้อบกพร่องใน Gitlab หรือฉันทำผิดพลาดกับการกำหนดค่า Exim หรือไม่

คำตอบ:


2

ดังที่คุณเห็นในคำอธิบายของตัวเลือกบรรทัดคำสั่ง eximหากใช้ตัวเลือกบรรทัดคำสั่ง-tผู้รับจะถูกนำมาจากอินพุตมาตรฐานของคำสั่ง exim (จากส่วนหัวของอีเมล) จากนั้นผู้รับที่นำมาจากบรรทัดคำสั่งจะถูกลบออกจากรายการนี้ ดูเหมือนว่าคุณมีผู้รับเหมือนกันในบรรทัดคำสั่งและในส่วนหัวของอีเมล

คุณสามารถลบออกจากบรรทัดคำสั่งหากการกำหนดค่าของ Gitlab อนุญาตให้ทำเช่นนี้หรือคุณสามารถใช้no_extract_addresses_remove_argumentsตัวเลือกในการกำหนดค่า Exim ดังนั้น Exim จึงพยายามเพิ่มผู้รับจากบรรทัดคำสั่งและไม่ลบพวกเขา (รายการที่ซ้ำกันจะได้รับการจัดการอย่างถูกต้อง ต้องการ).


ดูเหมือนว่าฉันจะใช้คำตอบนี้เพื่อแก้ไขปัญหาในเดือนมกราคม การตั้งค่าเป็นคำตอบที่เลือก (ขออภัยสำหรับความล่าช้า)
Shade

1

ตามปัญหานี้มันเป็นบั๊กใน upstream Ruby หรือ Exim4

แพทช์สามารถใช้ได้:

# diff -u /opt/gitlab/embedded/service/gitlab-rails/config/application.rb.org /opt/gitlab/embedded/service/gitlab-rails/config/application.rb
--- /opt/gitlab/embedded/service/gitlab-rails/config/application.rb.org 2014-09-11 16:21:11.641493626 +0200
+++ /opt/gitlab/embedded/service/gitlab-rails/config/application.rb     2014-09-11 16:21:51.959381839 +0200
@@ -7,6 +7,9 @@

 module Gitlab
   class Application < Rails::Application
+    #Fix for compatibility issue with exim as explained at https://github.com/gitlabhq/gitlabhq/issues/4866
+    config.action_mailer.sendmail_settings = { :arguments => "-i" }
+
     # Settings in config/environments/* take precedence over those specified here.
     # Application configuration should go into files in config/initializers
     # -- all .rb files in that directory are automatically loaded.

เริ่ม Gitlab ใหม่หลังจากนั้น:

gitlab-ctl restart

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