CURLE_SEND_ERROR: Failed sending data to the peer при отправке через smtp

Поддержка
  • настроил smtp
    вот настройки отправки - Безымянный.png . подскажите что не так. отправить не получается.

  • галочку с html убирал. ничего не поменялось

  • This post is deleted!
  • Перед действием настройки smtp создайте действие "Выполнить код" и вставьте туда код, приведенный ниже:

    smtp_client_send_mail = function (mailfrom, mailto, mailcc, mailsubject, mailbody, is_html, attachments)
    {
    	if(typeof(_SMTP_SETTINGS)=='undefined')
    		fail("No smtp settings")
    
    	var _SMTP_NEW_MAIL = JSON.parse(JSON.stringify(_SMTP_SETTINGS));
    
    	if(typeof(_SMTP_DEBUG) != "undefined" && _SMTP_DEBUG)
    	{
    		_SMTP_NEW_MAIL["trace"] = true
    	}
    
    	_SMTP_NEW_MAIL.options["CURLOPT_MAIL_FROM"] = _SMTP_SETTINGS.options["CURLOPT_USERNAME"];
    	mailto = mailto.replace(/\s/g, "");
    	mail_rcpt = mailto.split(",");
    	attachments_list = []
    	if(typeof(attachments) == "string")
    	{
    		if (attachments.length > 0)
    		{
    			attachments_list = attachments.split(",");
    		}
    	}else if(typeof(attachments) == "object")
    	{
    		attachments_list = attachments
    	}
    
    	
    	if(mailcc.length > 0)
    	{
    		mailcc = mailcc.replace(/\s/g, "")
    		mail_rcpt = mail_rcpt.concat(mailcc.split(",").slice());
    	};
    	
    	_SMTP_NEW_MAIL.options["CURLOPT_MAIL_RCPT"] = mail_rcpt;
    	
    	mail_raw = "To: <" + mailto + ">\r\nFrom: " + mailfrom + "<" + _SMTP_SETTINGS.options["CURLOPT_USERNAME"] + ">";
        if(mailcc.length > 0)
    	{
    		mail_raw += "\r\nCC: <" + mailcc + ">"
    	};
    	
    	
    	mail_raw += "\r\nSubject: " + mailsubject;
    	
    	mailbody = base64_encode(mailbody);
    	var boundary = rand(22);
    	if(is_html == true)
    	{
    		var msg_body_type = "text/html; charset=utf-8";
    	} else
    	{
    		var msg_body_type = "text/plain; charset=utf-8";
    	}
    	mail_raw += "\r\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=" + boundary + "\r\n\r\nThis is a multipart message in MIME format.\r\n\r\n" + "--" + boundary;
    	mail_raw += "\r\nContent-Type: " + msg_body_type + "\r\nContent-Transfer-Encoding: base64\r\n\r\n" + mailbody + "\r\n";
    	if(attachments_list.length > 0)
    	{
    		mail_raw += "\r\n--" + boundary;
    		for(var i = 0; i<attachments_list.length; i++)
    		{
    			var attach_filename = attachments_list[i]
    			if (attachments_list[i].indexOf("/") >=0)
    			{
    				attach_filename = attachments_list[i].split("/")[attachments_list[i].split("/").length - 1]
    			}else if (attachments_list[i].indexOf("\\") >=0)
    			{
    				attach_filename = attachments_list[i].split("\\")[attachments_list[i].split("\\").length - 1]
    			};
    			var extension = "." + attach_filename.split(".")[attach_filename.split(".").length - 1];
    			var content_type = BAS_GET_MIME_CTYPE(extension);			
    			var attach_base64 = native("filesystem", "readfile", JSON.stringify({value: attachments_list[i],base64:true,from:0,to:0}));
    			mail_raw += "\r\nContent-Type: " + content_type + ";\r\nContent-Disposition: attachment; filename=\"" + attach_filename + "\"\r\nContent-Transfer-Encoding: base64\n\n" + attach_base64;
    	
    			if(i == attachments_list.length - 1)
    			{
    				mail_raw += "\r\n--" + boundary + "--";
    			}else
    			{
    				mail_raw += "\r\n--" + boundary;
    			};
    		};
    	}else
    	{
    		mail_raw += "\r\n--" + boundary + "--";
    	};
    
    	_SMTP_NEW_MAIL["read_from_string"] = mail_raw;
    	return _SMTP_NEW_MAIL
    }
    
  • @m4zuper said in CURLE_SEND_ERROR: Failed sending data to the peer при отправке через smtp:

    Перед действием настройки smtp создайте действие "Выполнить код" и вставьте туда код, приведенный ниже:

    Вы бы хоть ссылку давали на тему, откуда этот код взяли
    https://community.bablosoft.com/topic/16804/новый-модуль-почты/50

    Ошибку "Error occurred : CURLE_SEND_ERROR: Failed sending data to the peer" он должен исправить

  • @m4zuper спасибо. работает

  • @sddfghfghfjfgfgh Спасибо Фоксу, его работа)

  • Столкнулся с такой проблемой при отправке почты
    Была ошибка при отправке почты "CURLE_SEND_ERROR: Failed sending data to the peer при отправке через smtp", описанная в данной теме.
    Я добавил код, как рекомендовал @Fox в данной теме. Спасибо больщое, ошибка ушла, но ругается mail-tester.com - пишет, что слишком длинный код в BASE64.
    Посмотрел, действительно, скрипт кодирует все содержимое письма в одну длииинную строчку в BASE64.
    Подскажите, пожалуйста, каким образом можно либо отключить кодирование содержимого письма в BASE64, либо разбить строку на куски по 79 символов.

    Спасибо за ответ

    d62f5fc4-4c74-44e2-aaa1-66f7d5560bbd-image.png

  • @andrewgenteam said in CURLE_SEND_ERROR: Failed sending data to the peer при отправке через smtp:

    Столкнулся с такой проблемой при отправке почты
    Была ошибка при отправке почты "CURLE_SEND_ERROR: Failed sending data to the peer при отправке через smtp", описанная в данной теме.
    Я добавил код, как рекомендовал @Fox в данной теме. Спасибо больщое, ошибка ушла, но ругается mail-tester.com - пишет, что слишком длинный код в BASE64.
    Посмотрел, действительно, скрипт кодирует все содержимое письма в одну длииинную строчку в BASE64.
    Подскажите, пожалуйста, каким образом можно либо отключить кодирование содержимого письма в BASE64, либо разбить строку на куски по 79 символов.

    Спасибо за ответ

    А как вы узнали, что модуль кодирует тело письма в base64? Не прикреплённые к письму файлы, а именно тело письма?

  • 0 Votes
    11 Posts
    156 Views
  • 0 Votes
    4 Posts
    167 Views
  • 0 Votes
    3 Posts
    91 Views
  • 0 Votes
    6 Posts
    1247 Views