এসএমটিপি-র মাধ্যমে পোস্টফিক্স রিলে করার সময় ঠিকানা থেকে বাধ্য করা


28

আমি আমাদের এডাব্লুএস ইসি 2 উদাহরণ থেকে ইমেল প্রতিবেদন পাওয়ার চেষ্টা করছি trying আমরা এক্সচেঞ্জ অনলাইন (মাইক্রোসফ্ট অনলাইন পরিষেবাদির অংশ) ব্যবহার করছি। আমি বিশেষত এসএমটিপি রিলে করার জন্য একটি ব্যবহারকারী অ্যাকাউন্ট সেটআপ করেছি এবং এই সার্ভারের মাধ্যমে বার্তাগুলি রিলে করার জন্য সমস্ত প্রয়োজনীয়তা মেটাতে পোস্টফিক্স সেটআপ করেছি। তবে, এক্সচেঞ্জ অনলাইনের এসএমটিপি সার্ভারটি বার্তা প্রত্যাখ্যান করবে যদি না থেকে ঠিকানা ঠিকানার সাথে প্রমাণীকরণের ঠিকানায় মেলে না (ত্রুটির বার্তাটি হয় 550 5.7.1 Client does not have permissions to send as this sender)।

সতর্কতার সাথে কনফিগারেশন সহ, এই ব্যবহারকারী হিসাবে প্রেরণের জন্য আমি আমার পরিষেবাগুলি সেটআপ করতে পারি। তবে আমি সাবধান হওয়ার কোনও বিশাল অনুরাগী নই - আমি বরং পোস্টফিক্সটি বিষয়টি জোর করে নিয়েছি। এই কাজ করতে একটি উপায় আছে কি?

উত্তর:


38

পোস্টফিক্সে এটি কীভাবে করা যায়।

এই কনফিগারেশনটি স্থানীয় উভয় থেকেই প্রেরকের ঠিকানা পরিবর্তন করে এবং এসএমটিপি মেল ট্রাফিক রিলে করে:

/etc/postfix/main.cf:

sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps =  regexp:/etc/postfix/sender_canonical_maps
smtp_header_checks = regexp:/etc/postfix/header_check

সার্ভার থেকেই উত্পন্ন উত্স থেকে ইমেল থেকে খামের ঠিকানাটি পুনরায় লিখুন

জন্য / etc / পোস্টসাফিক্স / sender_canonical_maps:

/.+/    newsender@address.com

এসএমটিপি রিলেড ইমেইলে ঠিকানা থেকে পুনরায় লিখুন

জন্য / etc / পোস্টসাফিক্স / header_check:

/From:.*/ REPLACE From: newsender@address.com

এটি খুব দরকারী যদি আপনি উদাহরণস্বরূপ কোনও স্থানীয় রিলে এসএমটিপি সার্ভার ব্যবহার করেন যা আপনার সমস্ত মাল্টি ফাংশনালস এবং বেশ কয়েকটি অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়।

আপনি যদি অফিস 365 এসএমটিপি সার্ভার ব্যবহার করেন, তবে খালি প্রমাণীকৃত ব্যবহারকারীর ইমেলের চেয়ে আলাদা প্রেরকের ঠিকানা সহ যে কোনও মেল অস্বীকার করা হবে। উপরের কনফিগারেশন এটি প্রতিরোধ করে।


ধন্যবাদ! এটি আমি যা খুঁজছিলাম তা দেখে মনে হচ্ছে। দুর্ভাগ্যক্রমে, অফিস 365 এ আমার অ্যাক্সেস দুটি কাজ আগে ছিল। এটি কি তাদের পক্ষে কাজ করে তা নিশ্চিত করতে পারেন?
জন হুইললক

1
আমি পারি. আমি অফিস 365 সঙ্গে এই ব্যবহার করছি
জ্যাসপার

1
sender_canonical_mapsপোস্টফিক্স ব্যবহার করার সময় প্রত্যাখাত মেল স্থানীয় স্পুলে সংরক্ষণ করতে পারে না এবং পরিবর্তে এটি রিলে মাধ্যমে অসীমভাবে প্রেরণের চেষ্টা করে
বেসিন

2
@ য্যাস্পার এফওয়াইআই আমি উপরের কনফিগারেশনগুলি পরিবর্তন করতে আরও সহজ পেয়েছি postconf -e sender_canonical_classes=envelope_sender,header_sender postconf -e sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps postconf -e smtp_header_checks=regexp:/etc/postfix/header_check
জ্যাকব ইভান্স

অনুরূপ সমস্যা ছিল, প্রেরক_কৌনিক_ক্লাস = খাম_সেন্ডার আমার দিনটি বাঁচিয়েছিল!
স্টিফান রিখটার

13

Al চ্ছিক জেনেরিক সারণী একটি ঠিকানা ম্যাপিং নির্দিষ্ট করে যা প্রযোজ্য যখন সার্ভার থেকে মেল সরবরাহ করা হয় (প্রেরণ করা হয়)।

এটি ক্যানোনিকাল ম্যাপিংয়ের বিপরীত , যা সার্ভারের মাধ্যমে মেল পাওয়ার পরে প্রয়োগ হয়।

(দ্রষ্টব্য: জেনেরিক এবং ক্যানোনিকাল টেবিলগুলির জন্য প্রতিস্থাপনের জন্য FROM এবং TO ঠিকানা উভয়ই মিলেছে))

সার্ভারের মাধ্যমে মেল পাওয়া গেলে ক্যানোনিকাল টেবিল ব্যবহার করা ইতিমধ্যে অন্য উত্তরগুলির ব্যাখ্যা করা হয়।

আপনি ঠিকানাগুলি থেকে পুনর্লিখন করতে পারেন মেইল করা হয় সার্ভার থেকে পাঠানো ব্যবহার smtp_generic_maps

পোস্টফিক্স ডকুমেন্টেশন অনুসারে :

/etc/postfix/main.cf:
    smtp_generic_maps = hash:/etc/postfix/generic

/etc/postfix/generic:
    user@localdomain.local      account@isp.example.com
    @localdomain.local          wholedomain@isp.example.com

তারপরে:

sudo postmap /etc/postfix/generic
sudo /etc/init.d/postfix reload

তথ্যসূত্র:


1
এটি কাজ করে তবে আমি কীভাবে FROM নাম পরিবর্তন করতে পারি?
জোয়ান মিকালাই

জেনেরিক মানচিত্রের সাথে আমার অভিজ্ঞতাটি হ'ল এটি FROM এবং TO ঠিকানা উভয়কেই সনাক্ত করবে, ওপি যেমন অনুরোধ করেছিল ঠিক তেমন FROM ঠিকানাটি জোর করার জন্য ক্যানোনিকাল মানচিত্র ব্যবহার করবে
ডোজ 87

রিজেক্স ব্যবহার করে প্রেরকের মেইল ​​এবং প্রেরকের ঠিকানাগুলি মিলানো কি সম্ভব?
ডাব্লুএম

@ ফ্রোজ এবং টো, উভয় উভয়ই ক্যানোনিকাল এবং জেনেরিক মানচিত্রের সাথে মিলবে। দুটি মানচিত্রের মধ্যে পার্থক্য বোঝাতে আমি আমার উত্তর আপডেট করেছি।
জোসলিন

@ ডব্লিউএম হ্যাঁ, আপনি রেজিপ এক্স ব্যবহার করতে পারেন। আমি এটি চেষ্টা করিনি তবে আপনাকে সম্ভবত মেইন সিএফ- তে পরিবর্তন hash:করতে হবে এবং জেনেরিক মানচিত্রের regexp:মতো লাইন ব্যবহার করতে হবে /foo.*@localdomain.local/ account@example.com। ম্যান পেজে এটি ব্যাখ্যা করা হয়েছে: postfix.org/generic.5.html
জোসেলিন

7

আপডেট: আইটি বন্ধুর পরামর্শে, আমি একটি ক্লাউড মেইল ​​সার্ভার তৈরির পরিবর্তে আমার সমস্ত সার্ভারে পোস্টফিক্স চালাচ্ছি। এখন পর্যন্ত আমার সমাধান এখানে:

/etc/postfix/main.cf

# output of hostname -f - mail from local users appears to come from here
myhostname = domU-01-02-03-04-05-06.compute-1.internal
# Local delivery - include all 127.0.0.1 aliases from /etc/hosts
mydestination = $myhostname, $mydomain, rest_of_entries_from_hosts
# Needed for address translation to work
myorigin = $mydomain

# Talking to MS Online
# :submission = port 587
relayhost = [smtp.mail.microsoftonline.com]:submission
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =   # Yes, leave empty
smtp_tls_security_level = encrypt
smtp_generic_maps = hash:/etc/postfix/generic

# Enable if you need debugging, but it does leak credentials to the log
#debug_peer_level = 2
#debug_peer_list = smtp.mail.microsoftonline.com

# Only listen on the local interfaces (not the public)
inet_interfaces = localhost

# I left out a bunch of CentOS defaults.  postconf -n is your friend.
# These are included
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

/etc/postfix/sasl_passwd

# Run postmap /etc/postfix/sasl_passwd after editing
# Also, chown root:root; chmod 600
smtp.mail.microsoftonline.com relayer@hosteddomain.com:YourP@ssw0rd

/etc/postfix/generic

# Run postmap /etc/postfix/generic
# I've seen local mail come from either source
# output of dnsdomainname
@compute-1.internal relayer@hosteddomain.com
# output of hostname -f
@domU-01-02-03-04-05-06.compute-1.internal relayer@hosteddomain.com

/etc/aliases

# Run newaliases after changing
# Lot of stuff here. Mostly, just make sure the graph points to root, such as
mailer-daemon:  postmaster
postmaster:     root

# And the important part - your email or distribution group
root:           awsadmins@hosteddomain.com

/etc/passwd

# Sometimes it helps to expand the name, so email comes from 'root at aws host 5'
#  rather than just 'root'
# Was
#root:x:0:0:root:/root:/bin/bash
# Is
root:x:0:0:root on aws host 5:/root:/bin/bash

যে বিষয়গুলি সম্পর্কে আমি খুশি:

  • প্রচুর মেল রুটে প্রেরণ করা হয়, এবং একটি পংক্তির aliasনির্দেশ দেয় যে এটি পায়।
  • স্থানীয় ব্যবহারকারীদের সমস্ত মেল থেকে আসা অনুবাদ করে relayer@hosteddomain.com, তাই এটি এমএস অনলাইন এসএমটিপি সার্ভারের মাধ্যমে পাওয়া যায়।
  • সেন্ডমেলের চেয়ে পোস্টফিক্সে আরও ভাল ডকুমেন্টেশন রয়েছে।

যে বিষয়গুলিতে আমি খুশি নই:

  • প্রতিটি হোস্ট এবং বিভিন্ন পদক্ষেপের জন্য কাস্টম পরিবর্তনগুলি প্রয়োজন। আমি সাহায্য করার জন্য একটি বাশ স্ক্রিপ্ট লিখেছি।
  • passwdনাম কৌতুক সবসময় কাজ করে না, এবং এটা চিন্তা করার একটি মেইল কি সার্ভার থেকে আসছে কঠিন হতে পারে।
  • প্রেরিত প্রতিটি মেল লগে তিনটি সতর্কতা রাখে:
    1. warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list(এসএমটিপি সার্ভার AUTHআগে নাল তালিকা পাঠায় STARTTLS, তবে AUTH LOGINপরে)।
    2. certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate (শংসাপত্রের আশেপাশে কিছু কনফিগার অপশন রয়েছে, তবে শংসাপত্র পুনর্নবীকরণের সময় মেল বিতরণ বিরতি হয় কিনা তা আমি নিশ্চিত নই)
    3. certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted (# 2 হিসাবে একই)

মেল সার্ভারগুলিতে দৃ strong় মতামত ভাগ করে নেওয়ার জন্য সার্ভারফল্ট সম্প্রদায়কে ধন্যবাদ।


4

আপনি মানচিত্রের একটি তালিকা নির্দিষ্ট করতে smtpd_sender_login_maps ব্যবহার করতে পারেন : প্রেরকের ঠিকানা - ব্যবহারকারী।

উদাহরণ:

smtpd_sender_login_maps = 
    hash:/etc/postfix/login-map 

জন্য / etc / পোস্টসাফিক্স / লগইন মানচিত্রে:

mail1@domain    userlogin
mail2@domain    userlogin, otheruser@example.com

এটি প্রেরণের জন্য কাজ করে, এটি একইভাবে রিলে কাজ করা উচিত।


সারি সময়ে ঠিকানা থেকে পুনরায় লেখার উদ্দেশ্য কি? আমার ধারণাটি এই যে smtpd_sender_login_maps প্রেরককে প্রত্যাখ্যান করতে ব্যবহৃত হয় (smtpd_sender_restrictions অংশ হিসাবে), ইমেল ঠিকানাগুলিতে লগইনগুলি অনুবাদ করার জন্য নয়। এটি স্থানে রেখে, echo "This is a test" | /usr/sbin/sendmail test@example.comএখনও মেলগুলি কাতার (এবং শেষ পর্যন্ত পুনরায়) আসে হিসাবে আসছেuser@domU-DE-AD-BE-EF-00-01.compute-1.internal
জন হুইটলক

আমার খারাপ, আমি একরকম বুঝতে পেরেছি আপনি নিজের পোস্টফিক্সের অনুমোদন দিচ্ছেন। এই জাতীয় ক্ষেত্রে smtpd_sender_login_maps ব্যবহারকারী প্রেরক ঠিকানা কী ব্যবহার করতে পারে তা সীমাবদ্ধ করে।
রেশম

এটি আমার শেষ সমাধানের অংশ হতে পারে। আমি সামনের প্রান্তে থাকা একজন প্রেরকের ঠিকানা ব্যতীত সমস্ত প্রত্যাখ্যান করতে পারি এবং কোনও পরিষেবা সঠিকভাবে কনফিগার না করা হলে আমাকে জানাতে, কোনও সামনের প্রান্তের পোস্টমাস্টারকে অবহিত করতে পারে। আমি smtp_generic_maps এ দেখছি, আমি যদি স্থানীয় অ্যাকাউন্টগুলিকে ঠিকানা থেকে ওয়ান ট্রুতে সংশোধন করতে ব্যবহার করতে পারি কিনা তা দেখতে। তবে, এটি কীভাবে স্থানীয় অ্যাকাউন্টগুলি নির্ধারণ করে তা বুঝতে আমার পোস্টফিক্স ডক্সটি পুনরায় পড়তে হবে - এডাব্লুএস ডিএনএস আমার অন্তর্দৃষ্টির সাথে মেলে না।
জন হুইলট

0

আমি ঠিকানা থেকে পুনর্লিখনের জন্য ক্যানোনিকাল ম্যাপিং ব্যবহার করি , যেমন root @ app01- কে no-reply@example.com এ পুনরায় লেখার মতো।


3
সার্ভার ফল্ট আপনাকে স্বাগতম! আমরা সত্যিই পছন্দ করি যে উত্তরে সামগ্রীগুলিতে নির্দেশক নয় এমন সামগ্রী রয়েছে। যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
ব্যবহারকারী 9517 GoFundMonica
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.