টেলনেট বা নেটক্যাট ব্যবহার করে একটি সংযুক্ত ফাইলের সাথে একটি ইমেল প্রেরণ করুন


15

আমি প্রায়শই পরীক্ষার মতো ইমেল প্রেরণের জন্য এসএমটিপি সার্ভারগুলিতে সংযোগ করতে টেলনেট বা নেটক্যাট ব্যবহার করি।

কেউ কীভাবে জানেন যে কীভাবে আপনি টেলনেট বা নেটক্যাট ব্যবহার করে ইমেল প্রেরণ করবেন তবে পাশাপাশি একটি ফাইল সংযুক্ত করবেন ? সম্ভবত আরও ভাল উপায় আছে, তবে আমি এখনও জানতে চাই :-)

আমি এমন একটি সমাধানে খুশি হব যা লক্ষ্য অর্জনে সামান্য ব্যাশ শেল ব্যবহার করে, তবে অন্য কোনও সরঞ্জাম ব্যবহার করতে চাই না ...


1
হ্যাঁ, এটি সম্ভবত কোনও ফাইলের মধ্যে একটি মাইম সংযুক্তি তৈরি করে, এটিকে এনকোড করবে এবং তারপরে এটি আপনার উইন্ডোতে পেস্ট করবে। যদিও এটি একটি এসএমটিপি সার্ভারে কেবল টেলনেট করতে সক্ষম হতে খুব দরকারী হতে পারে, একটি সংক্ষিপ্ত মেল লিখুন এবং এটি প্রেরণ করুন (এবং আমিও করতে পারি), এর মতো কোনও ফাইল প্রেরণ খুব ব্যবহারিক নয়। 'সেন্ডফিল' বা 'মুট' চেষ্টা করুন (এমনকি আপনি সরঞ্জাম ব্যবহার করতে পছন্দ করেন না)।
অ্যান্ড্রয়েড

প্রতিধ্বনির পরে ''; আপনি এই প্রতিধ্বনি যুক্ত করতে চাইতে পারেন ';'; ঘুম 3; প্রতিধ্বনি 'ছাড়ুন';

উত্তর:


10

ঠিক আছে, সুতরাং প্রত্যেকের মন্তব্যকে একটি প্রাথমিক বিন্দু হিসাবে ব্যবহার করে আমি এই নির্বিকার গণ্ডগোলটি নিয়ে এসেছি :-) ...

{ 
    sleep 5; 
    echo 'ehlo';
    sleep 3;
    echo 'MAIL FROM:<Test@test.com>';
    sleep 3; 
    echo 'RCPT TO: <kyle@test_dest.com>';
    sleep 3;
    echo 'DATA';
    sleep 3;
    echo -e 'To:kyle@testdest.com\nMIME-Version: 1.0 (mime-construct 1.9)\nContent-Type: application/zip\nContent-Transfer-Encoding: base64\n\n';
    dd if=/dev/urandom bs=4 count=10 2>/dev/null | openssl base64;
    echo '.';
} | telnet mx1.testdest.com 25

যদিও আমি কেবল এলোমেলো ডেটা প্রেরণ করছি, তবে তথ্যটি অক্ষত থাকবে কিনা তা নিশ্চিত নয় ...
কাইল ব্র্যান্ড্ট

আমার চেয়ে আপনার টেডিয়ামের প্রতি সহনশীলতা বেশি! > হাসি <
ইভান অ্যান্ডারসন

একটি নির্দিষ্ট পাঠ্য ফাইল প্রেরণে আমি কীভাবে এটি পরিবর্তন করতে পারি?
ব্যবহারকারী 987654321

8

Ick। আপনাকে সংযুক্তিটি বেস 64 এনকোড করতে হবে এবং MIME শিরোনাম তৈরি করতে হবে।

প্রতিবার "উড়ে" একটি নতুন বার্তা উত্সাহিত করার পরিবর্তে, সম্ভবত একটি "বাস্তব" ইমেল প্রোগ্রামের একটি সংক্ষিপ্ত উদাহরণ বার্তা নিজেকে ইমেল করা সহজ হবে (যে লোকেরা এটি লিখেছিল তারা সংযুক্তিটি সংযোজন করার জন্য যে কাজটি করেছিল তাতে লাভবান হওয়া) যথাযথ এনকোডিং এবং MIME শিরোনাম তৈরি) creating

এই বার্তাটি পাঠ্য ফাইল ডাব্লু / এর শিরোলেখগুলিতে সরিয়ে রাখুন (অবশ্যই পরিবহন শিরোনাম অপসারণ করুন), এবং কেবলমাত্র ভবিষ্যতের সেশনের জন্য এটি টেলনেট বা নেটকেটে সংশোধন / অনুলিপি / পেস্ট করুন।


6

হাতে হাতে এসএমটিপি সার্ভারগুলির হাতের পরীক্ষা করা সম্ভব এবং টেকসই, এর জন্য ডিজাইন করা কোনও সরঞ্জাম ব্যবহার করা আরও সহজ হবে।

এই নিবন্ধটি SWAKS ব্যাখ্যা করে । সোয়াকস এসএমটিপি সার্ভার পরীক্ষার জন্য ডিজাইন করা হয়েছে। সংযুক্তি, প্রমাণীকরণ এবং এনক্রিপশন সমর্থন করে!


+1 এখন এটি আমি ব্যবহার শুরু করতে যাচ্ছি! :-)
কাইল ব্র্যান্ড্ট 19

4

আমি যখন এই জাতীয় কিছু আবিষ্কার করছিলাম তখন আমি এই প্রবেশের বিষয়টি জানালাম। এবং এখানকার অ্যানজারস থেকে এবং আরও অতিরিক্ত গবেষণা আমি এই স্ক্রিপ্টটি তৈরি করতে সক্ষম হয়েছি।

#!/bin/sh

# Default reception
TOEMAIL="myEmail@domain.ltd";
# Default Subject
SUBJECT="You got mail - $DATE";
# Default Contents
MSGBODY="Hello, this is the default message body";
# Default Attachment
#ATTACHMENT="/tmp/testoutput"
# Default smtp server
mailserver="smtp.server.ltd"
mailserverPort="25"

showUsage() {
        echo "$0 -a /file/to/attach [-m /message/file] [-M \"Message string\"] -s \"subject\" -r receiver@domain.com"
        echo
        echo "The attachment (-a) is required, if no attachment is used then rather use sendmail directly."
}

fappend() {
    echo "$2">>$1;
}
DATE=`date`

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# This might need correction to work on more places, this is tested at a ubuntu 13.10 machine.  #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
domain=`grep search /etc/resolv.conf | awk '{print $2;}'`
computer=`hostname`
user=`whoami`
FREMAIL="$user@$computer.$domain"

while getopts "M:m:a:s:r:" opt; do
  case $opt in
        s)
          SUBJECT="$OPTARG - $DATE"
          ;;
        r)
          TOEMAIL="$OPTARG"
          ;;
        m)
          MSGBODY=`cat $OPTARG`
          ;;
        M)
          MSGBODY="$OPTARG"
          ;;
        a)
          ATTACHMENT="$OPTARG"
          ;;
        :)
          showUsage
          ;;
        \?)
          showUsage
          ;;
  esac
done

if [ "$ATTACHMENT" = "" ]; then
        showUsage
        exit 1
fi

MIMETYPE=`file --mime-type -b $ATTACHMENT`
TMP="/tmp/tmpmail_"`date +%N`;
BOUNDARY=`date +%s|md5sum|awk '{print $1;}'`
FILENAME=`basename $ATTACHMENT`

DATA=`cat $ATTACHMENT|base64`

rm $TMP 2> /dev/null

fappend $TMP "EHLO $computer.$domain"
fappend $TMP "MAIL FROM:<$FREMAIL>"
fappend $TMP "RCPT TO:<$TOEMAIL>"
fappend $TMP "DATA"
fappend $TMP "From: $FREMAIL"
fappend $TMP "To: $TOEMAIL"
fappend $TMP "Reply-To: $FREMAIL"
fappend $TMP "Subject: $SUBJECT"
fappend $TMP "Content-Type: multipart/mixed; boundary=\"$BOUNDARY\""
fappend $TMP ""
fappend $TMP "This is a MIME formatted message.  If you see this text it means that your"
fappend $TMP "email software does not support MIME formatted messages."
fappend $TMP ""
fappend $TMP "--$BOUNDARY"
fappend $TMP "Content-Type: text/plain; charset=UTF-8; format=flowed"
fappend $TMP "Content-Disposition: inline"
fappend $TMP ""
fappend $TMP "$MSGBODY"
fappend $TMP ""
fappend $TMP ""
fappend $TMP "--$BOUNDARY"
fappend $TMP "Content-Type: $MIMETYPE; name=\"$FILENAME\""
fappend $TMP "Content-Transfer-Encoding: base64"
fappend $TMP "Content-Disposition: attachment; filename=\"$FILENAME\";"
fappend $TMP ""
fappend $TMP "$DATA"
fappend $TMP ""
fappend $TMP ""
fappend $TMP "--$BOUNDARY--"
fappend $TMP ""
fappend $TMP "."
fappend $TMP "quit"

netcat $mailserver $mailserverPort < $TMP >> $TMP
rc="$?"
if [ "$rc" -ne "0" ]; then
    echo "Returncode: $rc"
    echo "Please inspect $TMP"
else
    rm $TMP;
fi

আপনি যুক্ত করতে চান এমন একটি জিনিস হ'ল প্রমাণীকরণ। আমার এটির দরকার নেই তাই আমি এটি যুক্ত করতে চাই না।

আমি মনে করি এটির জন্য কেবল md5sum , নেটক্যাট , ফাইল , awk এবং বেস 64 কমান্ডের প্রয়োজন, আইডি অনুমান যে তারা বেশিরভাগ সিস্টেমে বেশ মানসম্পন্ন।


এই সমাধানটিতে সহজেই একাধিক সংযুক্তি যুক্ত করা সম্ভব হবে?
ট্রাইট্রিআগেইন

3

বাশ সহ ইমেল প্রেরণে আমি এটি করছি। আমি আমাকে একটি লগ ফাইল এবং বহিরাগত আইপি ঠিকানা পাঠাতে এটি ব্যবহার করি, এটি নির্দ্বিধায় ব্যবহার করুন:

#!/bin/bash
# Send email from bash with attachment
# by Psirac - www.subk.org
from=myfromadress@test.com
to=mytoadress@test.com
mailserver=smtp.test.com
mylogin=`echo 'MYUSERNAME' | openssl base64`
mypassword=`echo 'MYPASSWORD' | openssl base64`
myip=`wget -qO- icanhazip.com`
myfile=`cat /tmp/mytest.log | openssl base64`
mydate=`date`

exec 9<>/dev/tcp/$mailserver/25
echo "HELO routeur.tripfiller" >&9
read -r temp <&9
#echo "$temp"
echo "auth login" >&9
read -r temp <&9
#echo "$temp"
echo "$mylogin=" >&9
read -r temp <&9
#echo "$temp"
echo "$mypasswd=" >&9
read -r temp <&9
#echo "$temp"
echo "Mail From: $from" >&9
read -r temp <&9
#echo "$temp"
echo "Rcpt To: $to" >&9
read -r temp <&9
#echo "$temp"
echo "Data" >&9
read -r temp <&9
#echo "$temp"
echo "To:$to" >&9
echo "MIME-Version: 1.0" >&9
echo "Subject: Test mail sended at $mydate" >&9
echo "From: $from" >&9
echo "To: $to" >&9
echo "Content-Type: multipart/mixed; boundary=sep" >&9
echo "--sep" >&9
echo "Content-Type: text/plain; charset=UTF-8" >&9
echo "Here your text..." >&9
echo "External IP adress: $myip" >&9
echo "--sep" >&9
echo "Content--Type: text/x-log; name=\"mytest.log\"" >&9
echo "Content-Disposition: attachment; filename=\"mytest.log\"" >&9
echo "Content-Transfer-Encoding: base64" >&9
echo "" >&9
echo "$myfile" >&9
echo "--sep--" >&9
echo "." >&9
read -r temp <&9
echo "$temp"
echo "quit" >&9
read -r temp <&9
echo "$temp"
9>&-
9<&-
#echo "All Done. See above for errors"
exit 0

আশা করি এটি আপনার পক্ষে ভাল ছিল;)

psirac।


3

টেলনেট - একাধিক সংযুক্তি সহ ইমেল প্রেরণ করুন

বিড়াল সংযুক্তি.জিপ | বেস 64> zip.txt
বিড়াল সংযুক্তি.পিডিএফ | বেস 64> pdf.txt

# সামগ্রী-প্রকার: পাঠ্য / সিএসভি; নাম = "ILE ফাইল" # সিএসভি ফাইলের জন্য
# সামগ্রী-প্রকার: অ্যাপ্লিকেশন / এক্স-এমএসডাউনলোড; এক্সিকিউটেবলের জন্য নাম = "$ ফাইল" #
# সামগ্রী-প্রকার: পাঠ্য / এক্সএমএল; xML ফাইলের জন্য নাম = "ILE ফাইল" # বা অ্যাপ্লিকেশন / এক্সএমএল চেষ্টা করুন try

টেলনেট smtp.server.dom 25

কপ্টার
মেল থেকে মেইল ​​করুন: email@server.com
আরসিপিটি টু: email@server.com
ডেটা
বিষয়: পরীক্ষার ইমেল
থেকে: ইমেল@সারবার ডটকম
টু: ইমেইল@সারবার.কম
মাইম-সংস্করণ: 1.0
সামগ্রী-প্রকার: গুণিত / মিশ্রিত; সীমানা = "এক্স - = - = - = - পাঠ্য সীমানা"

- এক্স - = - = - = - পাঠ্যের সীমানা
সামগ্রী-প্রকার: পাঠ্য / সমতল

আপনার বার্তা এখানে রাখুন ...

- এক্স - = - = - = - পাঠ্যের সীমানা
বিষয়বস্তুর ধরণ: অ্যাপ্লিকেশন / জিপ; নাম = "file.zip"
সামগ্রী-স্থানান্তর-এনকোডিং: বেস 64
বিষয়বস্তু-স্বভাব: সংযুক্তি; ফাইলের নাম = "file.zip"

ইউইএসডিবিবিকিউএএএএআইএজি 1 + জেইকিউএ .... অনুলিপি / পেস্ট zip.txt

- এক্স - = - = - = - পাঠ্যের সীমানা
সামগ্রী-প্রকার: পাঠ্য / পিডিএফ; নাম = "file.pdf"
সামগ্রী-স্থানান্তর-এনকোডিং: বেস 64
বিষয়বস্তু-স্বভাব: সংযুক্তি; ফাইলের নাম = "file.pdf"

ইউইএসডিবিবিকিউএএএএআইএজি 1 + জেইকিউএ .... অনুলিপি / পেস্ট করুন পিডিএফ.টেক্সট

- এক্স - = - = - = - পাঠ্যের সীমানা
।

QUIT

1
সার্ভারফল্টে আপনাকে স্বাগতম। আপনার মতো উত্তর পোস্ট করা লোকেরা এই ওয়েবসাইটে সত্যই স্বাগত! :) gratz
বিজিটিভিএফআর

1

আপনাকে এসএমটিপি প্রোটোকল স্পেসিফিকেশন পর্যালোচনা করতে হবে। প্রযুক্তিগত নির্দিষ্টকরণের জন্য এটি আশ্চর্যজনকভাবে হালকা পড়া এবং এটি ইমেল প্রক্রিয়া কীভাবে কাজ করে তা আপনাকে বুঝতে সহায়তা করবে।

বিশেষত, উপলব্ধি করুন যে সংযুক্তিগুলি এমআইএমআই টাইপগুলিতে রূপান্তরিত হয় এবং পাঠ্যে এনকোড হয়, সুতরাং যে কোনও সংযুক্তি আপনি টেলনেটের মাধ্যমে প্রেরণ করতে চান তা পাঠ্যে রূপান্তর করতে হবে এবং টেলনেট প্রোটোকলের মাধ্যমে যেমন প্রেরণ করতে হবে।


1

আপনি যা যা পরীক্ষা করছেন তা যদি 'সংযুক্তি সরবরাহ করে' থাকে তবে আপনি সম্ভবত সংযুক্তির প্রাক-মাইম মান ব্যবহার করে দূরে চলে যেতে পারেন: ইউউনকোড। মাইম থেকে পৃথক, বার্তা তৈরি করা অনেক সহজ is MIME এর বিপরীতে এটির কোনও শিরোনামের প্রয়োজন নেই। তবে, সমস্ত মেল ক্লায়েন্ট ইউইনকোডযুক্ত ফাইলগুলিকে আর সংযুক্তি হিসাবে স্বীকৃতি দেয় না তাই আপনি এটি ব্যবহার করতে পারবেন কিনা তা পরীক্ষা করার পরামর্শ দিই। যদি তা হয় তবে আপনি নিজেকে প্রচুর পরিশ্রম থেকে বাঁচিয়েছেন। যদি তা না হয়, তবে পার্ল বা কোনও কিছুর মাধ্যমে আপনার মাইমেড বার্তাটি প্রাক-নির্মাণ এবং নেটটিক্সের মতো কোনও কিছু দিয়ে এটি পাইপ করা সম্ভবত যাওয়ার উপায়।

এক নজর মূল্যবান।


20 বছর আগে এটি একটি ভাল উত্তর ছিল। এখন না. অনেকগুলি MIME লাইব্রেরির মধ্যে একটি ব্যবহার করুন এবং বেস M64-এনকোডিং সহ সম্পূর্ণ একটি MIME- অনুবর্তী ইমেল তৈরি করুন।
james.garriss

1

এই কাজের জন্য একটি দুর্দান্ত পার্ল স্ক্রিপ্ট রয়েছে। আপনি এখানে পেতে পারেন:

http://www.logix.cz/michal/devel/smtp-cli/

smtp-cli v2.9

স্ক্রিপ্ট লেখকের কাছ থেকে: মাইকেল লুডভিগ (সি) 2003-2011 http://smtp-cli.logix.cz

আমি নিজে এটি ব্যবহার করি এবং এটি দুর্দান্ত কাজ করেছে, মাইকেলকে ধন্যবাদ;)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.