2012-10-05 17 views
9

कार्यान्वयन के लिए मैं मेरे खेल के लिए विकल्प "एक बग/सुझाव रिपोर्ट" के बारे में सोच रहा हूँ, लेकिन मैं काफी यकीन है कि कैसे मुझे लगता है कि काम कर रहे हो सकता है नहीं कर रहा हूँ है। मेरे पास मेरा स्वयं का सर्वर या कुछ भी नहीं है, इसलिए मैं उस पाठ को नहीं भेज सकता जिसे उपयोगकर्ता ने वहां लिखा है।यह संभव एक ई-मेल किसी भी वास्तविक ईमेल का उपयोग किए बिना प्रोग्राम के रूप में भेजने के लिए खाते

एक ही रास्ता मैं के साथ आया है कि ग्राहक संदेश लिखते थे और मैं इसे एक ईमेल खाते जहां मैं उन्हें पढ़ सकता है करने के लिए भेजना होगा है। हालांकि, मैं नहीं चाहता कि उपयोगकर्ताओं को अपने व्यक्तिगत खातों के माध्यम से रिपोर्ट भेजनी होगी। मुझे पूरा यकीन नहीं है कि मैं इसे कैसे कार्यान्वित कर सकता हूं और गुगलिंग ने कोई अच्छा सुझाव नहीं दिया है।

मैं नेटवर्क सामान का एक बहुत नहीं किया है, इसलिए मैं वास्तव में इसे सराहना करेंगे (संभवतः भी कोड में) प्रक्रिया कदम-दर-कदम अगर तुम समझा सकता है।

मैं सी # का उपयोग कर रहा है और इस खेल विंडोज फोन 7

+0

मुझे लगता है कि यदि आप अनुभव करते हैं तो अधिक जानकारी चाहते हैं तो उनके साथ संपर्क में आने का कोई तरीका होना अच्छा विचार होगा। उन्हें यह बताने के लिए एक एवेन्यू भी अच्छा होगा कि उनके मुद्दे पर काम किया जा रहा है, और यदि इसे हल किया गया है। – krillgar

उत्तर

10

हां, ऐसा करना बिल्कुल संभव है। अपेक्षाकृत कम-स्तरीय परिप्रेक्ष्य से, आपको:

  1. उस ई-मेल खाते के लिए एमएक्स (मेल-एक्सचेंजर) सर्वर को हल करें जिसे आप भेजना चाहते हैं।
  2. एमएक्स सर्वर पर सॉकेट खोलें।
  3. अपने प्राप्तकर्ता खाते में ई-मेल संदेश वितरित करने के लिए उचित SMTP commands भेजें। आपको अनिवार्य रूप से "से" पता सेट करने की स्वतंत्रता है जो आप चाहते हैं कि कोई मनमानी चीज हो।

एसएमटीपी एक बहुत ही सरल/मानव-अनुकूल प्रोटोकॉल है, इसलिए यह सब हाथ से करने का एक बड़ा प्रयास नहीं है। साथ ही, prebuilt libraries कई हैं जो आपके लिए यह सब संभाल लेंगे (संभवतः प्राप्तकर्ता के एमएक्स सर्वर के संकल्प को छोड़कर)।

ध्यान दें कि इस तरह से भेजे गए ईमेल स्पैम के रूप में फ़िल्टर किए जाने की अधिक संभावना है (आमतौर पर प्रेषक का आईपी/होस्टनाम आपके द्वारा उपयोग किए जाने वाले आउटगोइंग ई-मेल पते पर जो भी डोमेन डालता है उससे मेल नहीं खाता है)।

यह भी ध्यान रखें कि चूंकि आप "से" पते को किसी भी चीज़ पर सेट कर सकते हैं, तो आपके पास उपयोगकर्ता से पूछने का विकल्प है कि वे अपना वास्तविक संपर्क पता प्रदान करना चाहते हैं, और यदि वे करते हैं तो आप इसे "से" पता कर सकते हैं ताकि यदि आवश्यक हो तो आप वास्तव में उनके साथ संपर्क में वापस आ सकते हैं।

+1

यह काम कर सकता है यदि आपके पास ** आपका अपना ** एसएमपीटी सर्वर है और इसे किसी को मेल भेजने की अनुमति देने के लिए कॉन्फ़िगर करें। लेकिन अधिकांश सार्वजनिक एसएमटीपी सर्वर एक यादृच्छिक मेजबान से भेजे गए मेल को अस्वीकार कर देंगे। तो मुझे नहीं लगता कि यह व्यवहार्य है। – Alex

+0

यह निश्चित रूप से आपके स्वयं के एसएमटीपी सर्वर के संचालन की आवश्यकता नहीं है। मैं इस दृष्टिकोण का उपयोग * हर समय * जावामेल के साथ ई-मेल को देव सिस्टम से भेजने की इजाजत देता हूं, बिना प्रत्येक डेवलपर को स्थानीय एसएमटीपी सर्वर को सेटअप/चलाने की आवश्यकता होती है। बस प्राप्तकर्ता के एमएक्स सर्वर को देखो, जावामेल को आउटगोइंग एसएमटीपी सर्वर के रूप में पास करें, और बाकी स्वचालित है। और वास्तव में पागलपन के लिए, स्पैम के रूप में खारिज किए गए संदेश को होने की संभावना को "उपयोगकर्ता" 'जैसे कुछ "पते" पते पर सेट करके लगभग पूरी तरह समाप्त कर दिया जा सकता है। – aroth

+0

आपको अभी भी एक एसएमटीपी सर्वर_ से कनेक्ट करने की आवश्यकता होगी और अधिकतर, यदि सभी नहीं - अज्ञात कनेक्शन ड्रॉप करें। इसके अतिरिक्त, जब तक प्राप्तकर्ता कुछ वास्तव में कमजोर स्पैम फ़िल्टरिंग का उपयोग नहीं कर रहा है (या सफेद-सूची नियोजित किया गया है) तो यह हमेशा सार्वजनिक ईमेल प्रदाताओं पर स्पैम फ़िल्टर द्वारा अस्वीकार कर दिया जाएगा, क्योंकि प्रेषक के पास वैध रिवर्स DNS नहीं होगा (मानदंडों में से एक स्पैम जांच)। यह एक अच्छा दृष्टिकोण है, लेकिन सार्वभौमिक नहीं है। –

3

आप सब पर ईमेल का उपयोग करने की जरूरत नहीं है के लिए प्रोग्राम किया जा रहा है। sentry या airbrake जैसी त्रुटि रिपोर्टिंग सेवा का उपयोग करने पर विचार करें।

इन सेवाओं में आपके क्लाइंट में एम्बेड होने वाले क्लाइंट हैं; जो स्वचालित रूप से आपकी त्रुटियों को लॉग करता है, जिसमें किसी भी डिबगिंग जानकारी/स्टैकट्रैस शामिल हैं; और जब आपका एप्लिकेशन किसी समस्या की रिपोर्ट करता है तो आपको ईमेल द्वारा सूचित करें।

आमतौर पर आप ऐप के एपीआई को अपने स्वयं के त्रुटि हैंडलिंग तंत्र में एकीकृत करते हैं। किसी त्रुटि के बिंदु पर, ग्राहक आपकी डीबगिंग जानकारी कैप्चर करेगा, आप एक त्रुटि मांगने वाले उपयोगकर्ता को "इस त्रुटि के दौरान क्या कर रहे थे?" जैसी जानकारी के लिए पॉपअप कर सकते हैं, इसे वापस भेजने के लिए अपनी त्रुटि प्रतिक्रिया के हिस्से के रूप में सहेजें सेवा।

चूंकि ऐप HTTP पर काम करता है, इसलिए आपको खुले होने के लिए किसी भी विशेष बंदरगाह की आवश्यकता नहीं है। उपयोगकर्ताओं को आपको "यह काम नहीं करता !!" के साथ ईमेल भेजने से अधिक आसान और अधिक सहायक है, और आपको ईमेल भेजने वाले सिरदर्द से निपटने की ज़रूरत नहीं है।

0

तो यह मेरा विचार है, आपके पास ईमेल क्यों भेजा गया है ... जैसा कि आप?

using System.Net; 
using System.Net.Mail; 

var fromAddress = new MailAddress("[email protected]", "From Name"); //Both the email addresses would be yours 
var toAddress = new MailAddress("[email protected]", "To Name"); //Both the email addresses would be yours 
const string fromPassword = "fromPassword"; 
const string subject = "There name or whatever"; 
const string body = "Errors ect...."; 

var smtp = new SmtpClient 
      { 
       Host = "smtp.gmail.com", 
       Port = 587, 
       EnableSsl = true, 
       DeliveryMethod = SmtpDeliveryMethod.Network, 
       UseDefaultCredentials = false, 
       Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
      }; 
using (var message = new MailMessage(fromAddress, toAddress) 
        { 
         Subject = subject, 
         Body = body 
        }) 
{ 
    smtp.Send(message); 
} 

कोड here

सभी से वे देखना होगा ताकि उन सभी को अपने व्यक्तिगत नाम/पासवर्ड नहीं होती सबमिट बटन होगा, यह भी आप prolly एक डमी खाते उन्हें भेज दिया है करने के लिए स्थापित करना चाहिए भले ही यह उन्हें आपके वास्तविक ईमेल खाते में आगे बढ़ाए।

+0

मुझे यकीन नहीं है कि एप्लिकेशन में अपना ईमेल पासवर्ड एम्बेड करने में बुद्धिमानी है। निकालने में आसान तरीका होगा, और इसका मतलब यह होगा कि आप इसे बदल नहीं सकते। – ctacke

+0

ठोस बिंदु। क्या यह बुद्धिमान है? बिलकुल नहीं, क्या यह काम करेगा? बिल्कुल –

+0

मुझे आश्चर्य होगा कि क्या आपने विंडोज फोन पर एक ईमेल भेजने की कोशिश की है, अगर कोई सुरक्षा संकेत पॉप अप नहीं करेगा, तो अनुमति मांगेगा। मुझे यह भी आश्चर्य होगा कि क्या आप अपने ऐप फॉर्म पर कुछ HTML कोड शामिल नहीं कर सकते हैं, किसी तरह से href = "mailto:" के साथ और फ़ोन को आपके लिए मेल ऐप लोड करने दें। – Phill

-2

कोड का अनुसरण करें यह आप मदद कर सकता है:

Dim objCDOMail 
Set objCDOMail = Server.CreateObject("CDONTS.NewMail") 
objCDOMail.From = "[email protected]" 
objCDOMail.To = "[email protected]" 
objCDOMail.Subject = "Test Mail Script" 
objCDOMail.BodyFormat = 0 
objCDOMail.MailFormat = 0 
objCDOMail.Body = "Testing Mail from Test Script" 
objCDOMail.Importance = 1 
objCDOMail.Send 
Set objCDOMail = Nothing 
+0

प्रश्न में कहा गया है कि यह सी # का उपयोग करता है और विजुअल बेसिक नहीं। –

2

मैं हाल ही में इस पर एक लेख लिखा था: Sending email with C#

आप मूल रूप से दो विकल्प हैं, या तो आप एक एसएमटीपी-ग्राहक का उपयोग कर, इस का मतलब है इसे भेजने कि आपके पास एक एसएमटीपी-सर्वर होना चाहिए और पोर्ट 25 से कनेक्ट करने में सक्षम होना चाहिए (यदि आप बाहरी एसएमटीपी का उपयोग नहीं कर रहे हैं, तो आपको इसे अपने आप प्रबंधित करना होगा)।

  • AlphaMail
  • SendGrid
  • प्रकार का बंदर

आप AlphaMail का उपयोग कर आप निम्नलिखित तरीके से ईमेल भेज सकते हैं कर रहे हैं:

या आप जैसे, एक बाहरी ईमेल प्रदाता का उपयोग कर सकते
IEmailService emailService = new AlphaMailEmailService() 
    .SetServiceUrl("http://api.amail.io/v1/") 
    .SetApiToken("YOUR-ACCOUNT-API-TOKEN-HERE"); 

var person = new Person() 
{ 
    Id = 1234, 
    UserName = "jdoe78", 
    FirstName = "John", 
    LastName = "Doe", 
    DateOfBirth = 1978 
}; 

var response = emailService.Queue(new EmailMessagePayload() 
    .SetProjectId(12345) // ID of AlphaMail project (determines options, template, etc) 
    .SetSender(new EmailContact("[email protected]", "[email protected]")) 
    .SetReceiver(new EmailContact("Joe E. Receiver", "[email protected]")) 
    .SetBodyObject(person) // Any serializable object 
); 

एक और चीज जो सिर्फ HTML बनाने और इसे SMTP-client के साथ भेजने से अलग है कि अल्फामेल के साथ आपके पास सीधे अपने जीयूआई में अपने कोड के बाहर अपने ईमेल संपादित करने की क्षमता है। आप आसानी से अल्फामेल की templating भाषा Comlang का उपयोग कर अत्यधिक गतिशील टेम्पलेट्स भी बना सकते हैं।

<html> 
    <body> 
     <b>Name:</b> <# payload.FirstName " " payload.LastName #><br> 
     <b>Date of Birth:</b> <# payload.DateOfBirth #><br> 

     <# if (payload.Id != null) { #> 
      <a href="http://company.com/sign-up">Sign Up Free!</a> 
     <# } else { #> 
      <a href="http://company.com/login?username=<# urlencode(payload.UserName) #>">Sign In</a> 
     <# } #> 
    </body> 
</html> 
+0

आप अल्फामेल पुस्तकालयों को एक WP7 प्रोजेक्ट में शामिल करने का प्रबंधन कैसे करते हैं क्योंकि उन्हें WP7 असेंबली के रूप में संकलित नहीं किया जाता है? – PmanAce

+0

अल्फामेल वेबसाइट का लिंक टूटा हुआ है ... –

0

एक और तरीका है इस लक्ष्य को हासिल करने के लिए एक WCF सेवा जो DB में अपने संदेश और दुकानों में लेता है या/ईमेल भेजता है की मेजबानी के लिए किया जाएगा। इसका एक नकारात्मक पक्ष यह है कि आपको ऐसा करने के लिए एक वेब सर्वर की आवश्यकता होगी।