tareid
@tareid

Как заполнить From?

Здравствуйте, Почтовый сервис mail.ru предоставляет возможность создания дополнительных адресов почты на одном аккаунте.
Есть маил_1 - основной и маил_2 дополнительный адрес.
На маил_2 поступило сообщение, если отправить ответ через веб интерфейс, то отправитель будет маил_2, если отправляю скриптом perl то отравитель маил_1.
как сделать чтобы отправитель был маил_2 ?
Ниже функции в которых есть From
# Логин и пароль почты
$email_login = 'MAIL_1@mail.ru';
$email_password = 'd123';
$MAIL_2 = 'MAIL_2@mail.ru';
# -----------------------------------------------------------------------------------
sub get_inbox_emails {

$ping->ping($email_server) or die "Ошибка: Сервер ${email_server} не доступен.\n";

@mails = ($client->seen, $client->unseen);

my %check_exst;

for my $msg_id (@mails) {

	$body = $client->message_string($msg_id) or die;
	$parser = MIME::Parser->new() or die;
	$parser->output_to_core(1);
	$entity = $parser->parse_data(\$body) or die "parse failed\n";
	$header = $entity->head;
	$from   = $header->get('Reply-To');
	$from   = $header->get('From') unless ($from);

	chomp $from;

	if ($from =~ /([\w\.]*\w+@[\w+\.]+[A-Za-z]+)/) {
		unless (defined $check_exst{$1}) {
			push @emails_list, $1;
			$check_exst{$1} = '';
		}
	} else {
		print "Ошибка определения адреса отправителя в сообщении ${msg_id}.\n";
	}

}
}

# -----------------------------------------------------------------------------------
sub send_email {
undef $smtp;

my $msg_data = "From: ${email_login}\nTo: ${to_mail}\nSubject: ${mail_send_text_subject}\nContent-Type: text/html; charset=\"UTF-8\"\n\n${mail_send_text}\n";

$smtp = Net::SMTP->new(
			$email_send_server,
			Port => $email_send_port,
			SSL  => 1,
			Timeout => 10,
			Debug => $send_debug_flag
			) or return 0;

$smtp->auth($email_login, $email_password) or return 0;
$smtp->mail("${email_login}\n") or return 0;
$smtp->to("${to_mail}\n") or return 0;

$smtp->data() or return 0;
$smtp->datasend("$msg_data") or return 0;
$smtp->dataend() or return 0;
$smtp->quit;

return 1;
}
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
hint000
@hint000
у админа три руки
$smtp->mail("${email_login}\n") or return 0; (в функции send_email )
нужно сделать:
$smtp->mail("${MAIL_2}\n") or return 0;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы